¿Cómo se comparan las cadenas para que la comparación sea verdadera solo si los casos de cada una de las cadenas también son iguales? Por ejemplo:
Select * from a_table where attribute = 'k'
... devolverá una fila con un atributo de 'K'. No quiero este comportamiento.
sql
sql-server
amccormack
fuente
fuente
Respuestas:
Hizo el truco.
fuente
Latin1_General_CS_AS
es una especificación de la recopilación. La clasificación se refiere a un conjunto de reglas que determinan cómo se ordenan y comparan los datos. Vea esta página para más información.También puede convertir ese atributo como mayúsculas y minúsculas utilizando esta sintaxis:
Ahora su búsqueda será sensible a mayúsculas y minúsculas .
Si desea volver a hacer que esa columna no sea sensible a mayúsculas y minúsculas , use
fuente
Puede convertir fácilmente columnas a VARBINARIO (longitud máxima). La longitud debe ser la máxima que espera para evitar una comparación defectuosa. Es suficiente establecer la longitud como la longitud de la columna. Recortar columna le ayuda a comparar el valor real, excepto que el espacio tiene un significado y está valorado en las columnas de su tabla. Esta es una muestra simple y, como puede ver, recorto el valor de las columnas y luego convierto y comparo .:
Espero que esto ayude.
fuente
Como otra alternativa, podría usar HASHBYTES, algo como esto:
fuente
Puede definir
attribute
comoBINARY
o usarINSTR
oSTRCMP
para realizar su búsqueda.fuente
INSTR
ySTRCMP
funciones.