2013-04-18 10 views
77


ich die folgenden Daten in einer Tabelle
PriceOrderShipped
PriceOrderShippedInbound
PriceOrderShippedOutbound

In SQL habe ich brauche eine Abfrage, die für eine Zeichenfolge in einer Tabelle sucht zu schreiben. Bei der Suche nach einer Zeichenfolge sollte Groß-/Kleinschreibung ignoriert werden. Für die unten genannten SQL-AbfrageSQL- Fall zu ignorieren, während für eine Zeichenfolge suchen

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

gibt alle oben genannten Daten, während

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

nicht geben.

Eg. Wenn ich nach 'PriceOrder' oder 'priceOrder' suche, funktioniert es, aber 'priororder' oder 'Priceorder' funktioniert nicht. Ich habe versucht, mit der folgenden Abfrage mit COLLATE, aber es funktioniert nicht. Lass mich wissen, wo ich falsch liege.

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

Antwort

146

Verwendung so etwas wie diese -

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

oder

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

Ich denke, Sie sollten immer Strings Großbuchstaben (UPPER) als Best Practice vergleichen. Google "türkisch ich" – Traubenfuchs

5

Sie sollten wahrscheinlich SQL_Latin1_General_Cp1_CI_AS_KI_WI als Ihre Kollatierung verwenden. Bei der Frage, die Sie in Ihrer Frage angeben, wird explizit zwischen Groß- und Kleinschreibung unterschieden.

Sie können eine Liste der Sortierungen here sehen.

6

diese ähnliche Frage sehen und beantworten mit Groß- und Kleinschreibung zu suchen - SQL server ignore case in a where expression

Versuchen mit so etwas wie:

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

es funktioniert nicht Ich bekomme SQL-Abfrage nicht ordnungsgemäß beendet, bevor sortieren – shockwave

+0

Sorry, ich habe meine Antwort aktualisiert. –

+0

@ Miguel-F .. es funktioniert gut, aber wie es DISTINCT COL_NAME von SELECT VON myTable WHERE COL_NAME LIKE ‚% priceorder%‘ weil dies auch gut funktioniert für mich unterscheidet .. – Ancee