Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-09-2017
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
Combinar n y ñ sql server

Saludos, tengo la siguiente nececidad y es que nececito buscar un string aun cuando éste este almacenado con la letra ñ,
por ejemplo si busco el apellido CEDENO y en la base de datos está como CEDEÑO,
me traiga el resultado, y viceversa

Gracias de antemano...
Responder Con Cita
  #2  
Antiguo 20-09-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si quieres encontrar 'cedeño', entonces busca 'cedeño'.
Si en la BD está 'cedeno', entonces tendrás que buscar 'cedeno'.
Responder Con Cita
  #3  
Antiguo 21-09-2017
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
A lo mejor la función Soundex te puede ayudar, seria cuestión de hacer pruebas
https://docs.microsoft.com/en-us/sql...x-transact-sql
Responder Con Cita
  #4  
Antiguo 21-09-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ni siquiera ha dicho qué base de datos está usando.
Si el valor correcto es CEDEÑO, ¿por qué no lo cambias antes en la base de datos en problema solucionado?
Buscas todos los CEDENO y los cambias por CEDEÑO.
Responder Con Cita
  #5  
Antiguo 22-09-2017
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
Re

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Ni siquiera ha dicho qué base de datos está usando.
Si el valor correcto es CEDEÑO, ¿por qué no lo cambias antes en la base de datos en problema solucionado?
Buscas todos los CEDENO y los cambias por CEDEÑO.
Saludos si ve el titulo del post es sql server, y no es tema de cambiar la data ya que en el futuro puede que se ingrese data con el mismo
problema dependiendo del idioma del teclado y o el digitador, como no tengo los fuentes de la aplicacion no puedo controlar cuando se ingrese una ñ.
Responder Con Cita
  #6  
Antiguo 22-09-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por ingmichel Ver Mensaje
Saludos si ve el titulo del post es sql server,
Un sql server es cualquier servidor de bases de datos sql: mysql, postgresql, firebird, oracle, etc,
Si te refieres a MS sql server, deberías haberlo especificado, no somos adivinos. También podías haber puesto tu pregunta en el foro MS sql server, pero lo has puesto en el SQL genérico, así que no podemos adivinar.

Cita:
Empezado por ingmichel Ver Mensaje
y no es tema de cambiar la data ya que en el futuro puede que se ingrese data con el mismo
problema dependiendo del idioma del teclado y o el digitador, como no tengo los fuentes de la aplicacion no puedo controlar cuando se ingrese una ñ.
Pues estamos en lo mismo, no somos adivinos y desconocemos tu caso y tus circunstancias, así que te hemos contestado con los datos que tenemos, los que tú nos has dado, o sea, con ninguno.
Responder Con Cita
  #7  
Antiguo 22-09-2017
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por ingmichel Ver Mensaje
Saludos, tengo la siguiente nececidad y es que nececito buscar un string aun cuando éste este almacenado con la letra ñ,
por ejemplo si busco el apellido CEDENO y en la base de datos está como CEDEÑO,
me traiga el resultado, y viceversa
Todo es cuestión del "cotejamiento" (collation) que uses. Una búsqueda en Google me lleva a este enlace en donde indican la solución. Como no uso SQL Server lo probé en MySQL así:

Código SQL [-]
select * from tabla where nombre like "%PENA%" collate utf8_swedish_ci

Lo que trajo registros con nombres como "PEÑA", "PEÑALOZA".

Cabe notar, en el caso de MySQL, que el cotejamiento usado debe corresponder al juego de caracteres. Esto es, si la tabla usa latin1 entonces usarías el cotejamiento latin1_swedish_ci. También, nuevamente en el caso de MySQL, un cotejamiento como utf8_spanish_ci no me funcionó.

Finalmente, observa que no es necesario cambiar el juego de caracteres o cotejamiento de tu tabla, ya que el cambio lo haces en la misma consulta SQL.

LineComment Saludos
Responder Con Cita
  #8  
Antiguo 22-09-2017
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Un sql server es cualquier servidor de bases de datos sql: mysql, postgresql, firebird, oracle, etc,
Yo sé que es molesto que Microsoft se haya apropiado de un término genérico para denotar su propio software. Es como cuando los mexicanos nos molestamos porque los gringos se llamen americanos a sí mismos, siendo que americanos somos todos, desde Canadá hasta Argentina. Pero eso no quita que hay usos y costumbres, y en este caso, SQL Server es casi seguro que se refiere a MS SQL Server ya que, al menos en español, es muy raro que alguien se refiera a un servidor SQL como un SQL Server

LineComment Saludos
Responder Con Cita
  #9  
Antiguo 22-09-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
Yo sé que es molesto que Microsoft se haya apropiado de un término genérico para denotar su propio software. Es como cuando los mexicanos nos molestamos porque los gringos se llamen americanos a sí mismos, siendo que americanos somos todos, desde Canadá hasta Argentina. Pero eso no quita que hay usos y costumbres, y en este caso, SQL Server es casi seguro que se refiere a MS SQL Server ya que, al menos en español, es muy raro que alguien se refiera a un servidor SQL como un SQL Server
LineComment Saludos
Ya, si así llevamos muchos años, pero en este caso el título no me pareció entender claramente que se refería a ese producto en concreto. Así que me ha molestado que se haya molestado, cuando lo que tenía que haber hecho es explicar mejor el problema
Responder Con Cita
  #10  
Antiguo 23-09-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
También es que leí el texto, pero no el título
Responder Con Cita
  #11  
Antiguo 25-09-2018
abelg abelg is offline
Miembro
 
Registrado: jul 2004
Posts: 50
Poder: 20
abelg Va por buen camino
Usa Replace.

Ejemplo.
Código SQL [-]
Create Table #Empleado (
  ID int identity,
  Nombre  nvarchar(100),
  Edad int
)

Declare @filtro nvarchar(100)

SET @filtro = 'ENO'

Insert into #Empleado (Nombre, Edad) Values ('Triveño', 30)
Insert into #Empleado (Nombre, Edad) Values ('Juan', 31)
Insert into #Empleado (Nombre, Edad) Values ('CEDEÑO', 40)
Insert into #Empleado (Nombre, Edad) Values ('Calero', 20)
Insert into #Empleado (Nombre, Edad) Values ('CEDENO', 35)
Insert into #Empleado (Nombre, Edad) Values ('Antonio', 50)

Select *
from #Empleado
Where REPLACE(Nombre, 'Ñ', 'N') like '%'+@filtro+'%'


Drop table #Empleado
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Combinar dos informes con QR Angel.Matilla Impresión 2 12-07-2016 19:35:05
Combinar Dos Dblookupcombobox donpedro Conexión con bases de datos 11 20-06-2016 17:30:54
Combinar correspondencia GustavoCruz Servers 1 02-11-2007 11:07:22
Combinar tablas jrcosta75 Conexión con bases de datos 1 19-02-2004 22:44:48


La franja horaria es GMT +2. Ahora son las 15:59:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi