sql-server-2005 - que - sql server descargar
¿Cómo realizo una comparación insensible al acento(e con è, é, ê yë) en SQL Server? (4)
Estoy buscando comparar dos varcars en SQL, uno sería algo así como Cafe
y el otro Café
hay una forma en SQL que permitirá comparar los dos valores. Por ejemplo:
SELECT *
FROM Venue
WHERE Name Like ''%cafe%''
Entonces, si hay un lugar con el nombre Big Bobs Café Extraordinaire
, ¿se incluiría en el conjunto de resultados?
Al aplicar una collation distinción específica a su selección:
SELECT *
FROM Venue
WHERE Name COLLATE Latin1_General_CI_AI Like ''%cafe%'' COLLATE Latin1_General_CI_AI
El CI significa "Insensible a mayúsculas y minúsculas" y AI para "Insensible a acentos".
Coerce a una collation insensible a los acentos
También deberá asegurarse de que ambos lados tengan la misma intercalación para evitar errores o más coerciones si desea comparar con una variable de tabla o columna varchar de tabla temporal
y porque el valor constante tendrá la recopilación de la base de datos Actualización: solo para las variables locales, no para las constantes no, ni siquiera entonces
SELECT *
FROM Venue
WHERE
Name COLLATE Latin1_general_CI_AI Like ''%cafe%'' COLLATE Latin1_general_CI_AI
La búsqueda sensible a los acentos y acentuada no se puede usar mediante Latin1_general_CI_AI
Aquí AI
es para Insensible a los acentos y AS
para Acentuado sensible, es decir, Café y Café son lo mismo si no es sensible a los acentos.
En la consulta siguiente, Latin1_general_CI_AI
se puede desglosar en las siguientes partes.
latin1
hace que el servidor trate cadenas usando charset latin 1, básicamente ascii.CI especifica las mayúsculas y minúsculas, por lo que "ABC" equivale a "abc".
- AI especifica insensible al acento, por lo que ''ü'' es igual a ''u''.
Su consulta debe ser la siguiente:
SELECT * FROM Venue WHERE Name COLLATE Latin1_general_CI_AI Like ''%cafe%'' COLLATE Latin1_general_CI_AI
El resultado esperado es el siguiente:
Id name
1 Café
2 Cafe
si ''A'' COLLATE SQL_Latin1_General_CP1_CS_AS = ''a'' COLLATE SQL_Latin1_General_CP1_CS_AS SELECCIONE N''Sí ''ELSE SELECT N''No''