web-dev-qa-db-ja.com

SQL - 文字列の検索中に大文字と小文字を区別しない


表に以下のデータがあります
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%'
107
shockwave

このようなものを使用してください -

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%')
192
Aditya Kakirde

この同様の質問を参照し、大文字と小文字を区別せずに検索するための回答 - SQLサーバはwhere式でcaseを無視します

のようなものを使ってみてください。

SELECT DISTINCT COL_NAME 
FROM myTable 
WHERE COL_NAME COLLATE SQL_Latin1_General_CP1_CI_AS LIKE '%priceorder%'
9
Miguel-F

このような。

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

Postgresqlで。

4
Hangk

あなたはおそらくあなたの照合順序としてSQL_Latin1_General_Cp1_CI_AS_KI_WIを使うべきです。質問で指定したものは、大文字と小文字が区別されます。

照合の一覧を見ることができます ここ

4
user806549