Comment comparez-vous les chaînes pour que la comparaison ne soit vraie que si les cas de chacune des chaînes sont également égaux. Par exemple:
Select * from a_table where attribute = 'k'
... renverra une ligne avec un attribut "K". Je ne veux pas de ce comportement.
sql
sql-server
amccormack
la source
la source
Réponses:
A fait l'affaire.
la source
Latin1_General_CS_AS
est une spécification du classement. Le classement fait référence à un ensemble de règles qui déterminent comment les données sont triées et comparées. Consultez cette page pour plus d'informations.Vous pouvez également convertir cet attribut en respectant la casse à l' aide de cette syntaxe:
Votre recherche sera désormais sensible à la casse .
Si vous souhaitez rendre ce cas de colonne insensible à nouveau, utilisez
la source
Vous pouvez facilement convertir des colonnes en VARBINARY (longueur maximale), la longueur doit être le maximum que vous attendez pour éviter une comparaison défectueuse, il suffit de définir la longueur comme longueur de colonne. La colonne Trim vous aide à comparer la valeur réelle, sauf que l'espace a une signification et une valeur dans les colonnes de votre tableau.Ceci est un exemple simple et comme vous pouvez le voir, je coupe la valeur des colonnes, puis convertis et compare:
J'espère que cette aide.
la source
Tout comme une autre alternative, vous pouvez utiliser HASHBYTES, quelque chose comme ceci:
la source
Vous pouvez définir
attribute
commeBINARY
ou utiliserINSTR
ouSTRCMP
pour effectuer votre recherche.la source
INSTR
etSTRCMP
.