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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 Pedro
02/10/2007 - 12:04 | Informe spam
Hola de nuevo:
mirate temas sobre el "Collation"
Collation juego de caracteres o letras asociadas a una base de datos SQL

El collation permite asociar un valor único a cada letra dependiendo del
idioma seleccionado, en collation europeo una posición puede estar asociada a
la ñ mientras que en collation asiatico estar asociado a caracteres chinos lo
cual permite que los europeos veamos la ñ mientras los asiaticos sus
caracteres sin gastar demasiado espacio.

El collation no sólo indica a que valor interno de una página de códigos se
asigna cada letra, también indica si el motor de SQL distingue mayusculas y
minusculas o si trata las vocales acentuadas igual que las no acentuadas de
forma que "cáspita" sea lo mismo que "caspita" en cuanto a busquedas y
ordenación se refiere, también podemos cambiar el collation sólo para una
consulta concreta pero eso es tema para otro articulo.

Un saludo
by Norman








"Alhambra Eidos Kiquenet" wrote:

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

Respuesta Responder a este mensaje
#3 Alhambra Eidos Kiquenet
03/10/2007 - 12:25 | Informe spam
Ya que estamos cómo se puede cambiar el collation sólo para una consulta
concreta ??

SAludos y muchas gracias.
Respuesta Responder a este mensaje
#4 Salvador Ramos
03/10/2007 - 20:45 | Informe spam
Hola,

Lo puedes utilizar por ejemplo en la condición where, te paso un ejemplo:

select *
from TuTabla
where c1 = 'PEPE' collate Modern_Spanish_CS_AI

Para ampliar información busca en la ayuda la cláusula collate.

Un saludo
Salvador Ramos

www.helpdna.net (información sobre SQL Server y Microsoft .Net)
www.helpdna.net/acerca_de_salvador_ramos.htm


"Alhambra Eidos Kiquenet"
escribió en el mensaje
news:
Ya que estamos cómo se puede cambiar el collation sólo para una consulta
concreta ??

SAludos y muchas gracias.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida