J'ai les données suivantes dans une table
PriceOrderShipped
PriceOrderShippedInbound
PriceOrderShippedOutbound
En SQL, j'ai besoin d'écrire une requête qui recherche une chaîne dans une table. Lors de la recherche d'une chaîne, il doit ignorer la casse. Pour la requête SQL mentionnée ci-dessous
SELECT DISTINCT COL_NAME FROM myTable WHERE COL_NAME LIKE '%PriceOrder%'
donne toutes les données ci-dessus, alors que
SELECT DISTINCT COL_NAME FROM myTable WHERE COL_NAME LIKE '%Priceorder%'
ne donne pas.
Par exemple. lorsque je recherche «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. Faites-moi savoir où je vais mal.
SELECT DISTINCT COL_NAME FROM myTable WHERE
COL_NAME COLLATE latin1_general_cs LIKE '%Priceorder%'
sql
sql-server
case-insensitive
sql-like
ignore-case
onde de choc
la source
la source
Réponses:
Utilisez quelque chose comme ça -
ou
la source
UPPER
ou enLOWER
cas, puis en utilisant laLIKE
recherche?Voir cette question et réponse similaire à la recherche avec insensibilité à la casse - le serveur SQL ignore la casse dans une expression where
Essayez d'utiliser quelque chose comme:
la source
Comme ça.
Dans postgresql.
la source
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 classements ici .
la source