Cas SQL - Ignore lors de la recherche d'une chaîne de caractères



j'ai les données suivantes dans un Tableau

PriceOrderShipped

PriceOrderShippedInbound

PriceOrderShippedOutbound



en SQL je dois écrire une requête qui recherche une chaîne dans une table. En cherchant une chaîne de caractères, il devrait ignorer case. Pour la requête SQL mentionnée ci-dessous

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

donne tout ce qui précède données, alors que

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

ne donne pas.

par exemple. quand je cherche 'PriceOrder' ou 'priceOrder' cela fonctionne mais 'priceorder' ou 'Priceorder' ne fonctionne pas. J'ai essayé avec la requête ci-dessous en utilisant COLLATE, mais cela ne fonctionne pas. Ne laissez-moi savoir où je vais mal.

SELECT DISTINCT COL_NAME FROM myTable WHERE 
COL_NAME COLLATE latin1_general_cs LIKE '%Priceorder%'
86
demandé sur shockwave 2013-04-18 16:09:13

4 réponses

utilisez quelque chose comme ça -

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

ou

SELECT DISTINCT COL_NAME FROM myTable WHERE LOWER(COL_NAME) LIKE LOWER('%PriceOrder%')
166
répondu Aditya Kakirde 2013-04-18 12:43:46

voir cette question similaire et la réponse à la recherche avec l'insensibilité cas - SQL Serveur ignorer cas dans un où l'expression

Essayez quelque chose comme:

SELECT DISTINCT COL_NAME 
FROM myTable 
WHERE COL_NAME COLLATE SQL_Latin1_General_CP1_CI_AS LIKE '%priceorder%'
8
répondu Miguel-F 2017-05-23 12:10:32

vous devriez probablement utiliser SQL_Latin1_General_Cp1_CI_AS_KI_WI comme collation. Celui que vous spécifiez dans votre question est explicitement sensible à la casse.

vous pouvez voir une liste de collations ici .

4
répondu 2013-04-18 12:16:53

j'aimais bien.

comme ceci.

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

Dans postgresql.

2
répondu Hangk 2018-06-08 05:02:46