表に以下のデータがあります
PriceOrderShipped
PriceOrderShippedInbound
PriceOrderShippedOutbound
SQLでは、テーブル内の文字列を検索するクエリを書く必要があります。文字列を検索している間は大文字と小文字を区別しないでください。下記のSQLクエリの場合
SELECT DISTINCT COL_NAME FROM myTable WHERE COL_NAME LIKE '%PriceOrder%'
上記のデータをすべて与えますが、
SELECT DISTINCT COL_NAME FROM myTable WHERE COL_NAME LIKE '%Priceorder%'
与えない.
例えば。 「PriceOrder」または「priceOrder」を検索しても機能しますが、「priceorder」または「Priceorder」が機能しません。 COLLATEを使用して以下のクエリを試しましたが、うまくいきません。私はどこでイムがうまくいかないのか教えてください。
SELECT DISTINCT COL_NAME FROM myTable WHERE
COL_NAME COLLATE latin1_general_cs LIKE '%Priceorder%'
このようなものを使用してください -
SELECT DISTINCT COL_NAME FROM myTable WHERE UPPER(COL_NAME) LIKE UPPER('%PriceOrder%')
または
SELECT DISTINCT COL_NAME FROM myTable WHERE LOWER(COL_NAME) LIKE LOWER('%PriceOrder%')
この同様の質問を参照し、大文字と小文字を区別せずに検索するための回答 - SQLサーバはwhere式でcaseを無視します
のようなものを使ってみてください。
SELECT DISTINCT COL_NAME
FROM myTable
WHERE COL_NAME COLLATE SQL_Latin1_General_CP1_CI_AS LIKE '%priceorder%'
このような。
SELECT DISTINCT COL_NAME FROM myTable WHERE COL_NAME iLIKE '%Priceorder%'
Postgresqlで。
あなたはおそらくあなたの照合順序としてSQL_Latin1_General_Cp1_CI_AS_KI_WI
を使うべきです。質問で指定したものは、大文字と小文字が区別されます。
照合の一覧を見ることができます ここ 。