Caracteres

02/10/2007 - 11:00 por Alhambra Eidos Kiquenet | Informe spam
Hola a todos,

Tengo un problema con una consulta Sql y es que cuando ejecuto "SELECT *
FROM Localidades WHERE Descripcion='Cabanas'" el resultado incluye Cabañas,
es decir, con Ñ. Y si busco Cabañas me aparece también Cabanas. ¿Hay alguna
manera de que me diferencie la Ñ de la N y viceversa?

Muchas gracias

Un saludo
http://www.alhambra-eidos.es/web2005/index.html
www.kiquenet.net
www.trabajobasura.com/solusoft
 

Leer las respuestas

#1 Rubén Vigón
02/10/2007 - 11:56 | Informe spam
¿Qué intercalación tienen asignadas tu base de datos y tu tabla Localidades? Probablemente tengas alguna intercalación Windows (como, por ejemplo, "Latin1_General_CI_AI"). Prueba a especificar una intercalación que sí distinga entre 'N' y 'Ñ' mediante la cláusula COLLATE; por ejemplo:

DECLARE @Localidades TABLE (
Descripcion varchar(50)
)
INSERT @Localidades VALUES ('Cabanas')
INSERT @Localidades VALUES ('Cabañas')
SELECT * FROM @Localidades WHERE Descripcion = 'Cabanas' COLLATE Latin1_General_CI_AI
SELECT * FROM @Localidades WHERE Descripcion = 'Cabañas' COLLATE Modern_Spanish_CI_AI

Descripcion

Cabanas
Cabañas

(2 filas afectadas)

Descripcion

Cabañas

(1 filas afectadas)

Puedes obtener la intercalación de tu servidor mediante:
SELECT CONVERT(char, SERVERPROPERTY('collation'))

Para obtener la intercalación de una determinada base de datos:
SELECT CONVERT(char, DATABASEPROPERTYEX('basedatos', 'collation'))

Y para obtener una lista de las intercalaciones disponibles:
SELECT * FROM ::fn_helpcollations()

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org

Preguntas similares