Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

quitar espacios, puntos y guiones en query

Estas en el tema de quitar espacios, puntos y guiones en query en el foro de Bases de Datos General en Foros del Web. hola a to2, tengo que realizar la siguiente consulta y no sé como hacerla. quiero obtener de una tabla todos los registros que contengan un ...
  #1 (permalink)  
Antiguo 12/07/2005, 01:41
 
Fecha de Ingreso: septiembre-2003
Mensajes: 341
Antigüedad: 20 años, 7 meses
Puntos: 0
quitar espacios, puntos y guiones en query

hola a to2,
tengo que realizar la siguiente consulta y no sé como hacerla.
quiero obtener de una tabla todos los registros que contengan un dni que yo le paso .
Tabla usuarios
Código:
id nombre		 dni			 miembro
1 pepe------------12.345.678-u---------club de campo
2 pepe perez------1 23 45 67 8 u--------club de tenis
3 antonio---------22222222e------------club de atletismo
4 pepe pérez------12345678u------------club de futbol

Si quiero el dni :12345678u , obtendría los registros: 1,2,4
el campo DNI puede contener espacios, puntos, y guiones , es decir un mismo dni puede estar escrito de diferentes maneras.
yo quiero hacer una query que me permita quitar los puntos , espacios y guiones

He intentado hacer un replace pero no sé como hacerlo ya que lo que tengo es un campo de la base de datos y no una expresión..

Como podria hacerlo?
gracias.
__________________
---Nuestra recompensa se encuentra en el esfuerzo y no en el resultado. Un esfuerzo total es una victoria completa.-- GHANDI
  #2 (permalink)  
Antiguo 12/07/2005, 06:00
 
Fecha de Ingreso: agosto-2002
Mensajes: 230
Antigüedad: 21 años, 8 meses
Puntos: 1
qué gestor de bbdd utilizas?En Oracle podría ser algo así

Código:
SELECT id,nombre,replace(replace(replace(dni,'.'),'-'),' ') AS "DNI",miembro
from usuarios
where replace(replace(replace(dni,'.'),'-'),' ') = '12345678u'
De todas maneras yo te recomendaría que si puedes limites la manera en que se puede introducir un dni, lo suyo sería que ya no se pudieran meter más dni's que tuvieran espacios y/o guiones y/o puntos. Además si tienes un índice en dni y utilizas la consulta de antes nunca te irá por ese índice con lo que lo estás desaprovechando

Cita:
Iniciado por Motki
He intentado hacer un replace pero no sé como hacerlo ya que lo que tengo es un campo de la base de datos y no una expresión..
esto sí que no lo entiendo, tienes un campo de la base de datos y sacas una expresión en función a ese campo ¿cuál es el problema?

espero que te sirva
  #3 (permalink)  
Antiguo 12/07/2005, 09:43
 
Fecha de Ingreso: septiembre-2003
Mensajes: 341
Antigüedad: 20 años, 7 meses
Puntos: 0
gracias xaquin por la respuesta.

lo resolví conforme me has indicado,
por desgracia la base de datos no la puedo modificar y desde un principio no hay indices y el dni lo pueden insertar conforme quieran ... de ahí que quisiese realizar varios replaces....

muchas gracias
__________________
---Nuestra recompensa se encuentra en el esfuerzo y no en el resultado. Un esfuerzo total es una victoria completa.-- GHANDI
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:25.