Ich habe folgende Daten in einer Tabelle
PriceOrderShipping
PriceOrderShippedInbound
PriceOrderShippedOutbound
In SQL muss ich eine Abfrage schreiben, die nach einer Zeichenfolge in einer Tabelle sucht. Bei der Suche nach einer Zeichenfolge sollte die Groß-/Kleinschreibung ignoriert werden. Für die unten genannte SQL-Abfrage
SELECT DISTINCT COL_NAME FROM myTable WHERE COL_NAME LIKE '%PriceOrder%'
gibt alle oben genannten Daten an, wohingegen
SELECT DISTINCT COL_NAME FROM myTable WHERE COL_NAME LIKE '%Priceorder%'
gibt nicht.
Z.B. Wenn ich nach 'PriceOrder' oder 'priceOrder' suche, funktioniert es, aber 'priceorder' oder 'Priceorder' funktionieren nicht. Ich habe mit der folgenden Abfrage versucht, COLLATE zu verwenden, aber es funktioniert nicht. Lassen Sie mich wissen, wo ich falsch liege.
SELECT DISTINCT COL_NAME FROM myTable WHERE
COL_NAME COLLATE latin1_general_cs LIKE '%Priceorder%'
Verwenden Sie so etwas -
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%')
Sehen Sie sich diese ähnliche Frage und Antwort für die Suche mit Groß- und Kleinschreibung an - SQL Server ignoriert Groß- und Kleinschreibung in einem where-Ausdruck
Versuchen Sie es mit etwas wie:
SELECT DISTINCT COL_NAME
FROM myTable
WHERE COL_NAME COLLATE SQL_Latin1_General_CP1_CI_AS LIKE '%priceorder%'
So was.
SELECT DISTINCT COL_NAME FROM myTable WHERE COL_NAME iLIKE '%Priceorder%'
In postgresql.
Sie sollten wahrscheinlich SQL_Latin1_General_Cp1_CI_AS_KI_WI
als Ihre Sammlung. Bei der Angabe in Ihrer Frage wird explizit zwischen Groß- und Kleinschreibung unterschieden.
Sie können eine Liste der Kollatierungen sehen hier .