2013-04-18 10 views
77


ho i seguenti dati in una tabella
PriceOrderShipped
PriceOrderShippedInbound
PriceOrderShippedOutbound

In SQL Ho bisogno di scrivere una query che ricerca una stringa in una tabella. Durante la ricerca di una stringa dovrebbe ignorare il caso. Per la query SQL di seguito menzionatoSQL- Ignora caso durante la ricerca di una stringa

SELECT DISTINCT COL_NAME FROM myTable WHERE COL_NAME LIKE '%PriceOrder%' 

dà tutti i dati di cui sopra, mentre

SELECT DISTINCT COL_NAME FROM myTable WHERE COL_NAME LIKE '%Priceorder%' 

non dà.

Es. quando cerco 'PriceOrder' o 'priceOrder' funziona, ma 'priceorder' o 'Priceorder' non funziona. Ho provato con la query seguente utilizzando COLLATE, ma non funziona. Fammi sapere dove sto andando storto.

SELECT DISTINCT COL_NAME FROM myTable WHERE 
COL_NAME COLLATE latin1_general_cs LIKE '%Priceorder%' 

risposta

146

Usa qualcosa di simile -

SELECT DISTINCT COL_NAME FROM myTable WHERE UPPER(COL_NAME) LIKE UPPER('%PriceOrder%') 

o

SELECT DISTINCT COL_NAME FROM myTable WHERE LOWER(COL_NAME) LIKE LOWER('%PriceOrder%') 
+12

Penso che dovresti sempre confrontare le stringhe in lettere maiuscole (UPPER) come best practice. Google "turco i" – Traubenfuchs

5

Probabilmente si dovrebbe usare SQL_Latin1_General_Cp1_CI_AS_KI_WI come la fascicolazione. Quello specificato nella domanda è esplicitamente case sensitive.

È possibile visualizzare un elenco di regole di confronto here.

6

Vai a questa domanda simile e rispondi alla ricerca con il caso di insensibilità - SQL server ignore case in a where expression

Provate ad usare qualcosa di simile:

SELECT DISTINCT COL_NAME 
FROM myTable 
WHERE COL_NAME COLLATE SQL_Latin1_General_CP1_CI_AS LIKE '%priceorder%' 
+0

non funziona Ho una query SQL non terminata correttamente prima di Collate – shockwave

+0

Spiacente, ho aggiornato la mia risposta. –

+0

@ Miguel-F .. si sta lavorando bene, ma in che cosa differisce da SELEZIONA COL_NAME DISTINTO DA myTable DOVE COL_NAME LIKE '% priceorder%' perché questo sta anche lavorando bene per me .. – Ancee