Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Oracle
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-02-2007
verodelphi verodelphi is offline
Miembro
 
Registrado: sep 2006
Posts: 23
Poder: 0
verodelphi Va por buen camino
Hacer selección en una tabla

Hola a todos.

Tengo un problema. Necesito hacer una selección de una tabla por un campo que es de tipo String.

La cuestión está en que el campo es el CIF/DNI. Y resulta que en mi base de datos hay muchos cif erróneos. Algunos pone 0, otros un punto, y otros las iniciales del titular de ese nif. Entonces, lo que quiero es sacar todos aquellos nif erróneos para depurar la tabla y actualizarla con los datos correctos. Las selecciones en las que el nif es un punto o cero no hay problema. El problema está en aquellos nif con caracteres. Pero no sé hacer la selección que me permita obtener aquellos nifs que empiezen por dos caracteres (esto es así porque los cif de las empresas empiezan con una letra). Entonces para que me seleccione los que son varios caracteres no sé.

Si alguien me pudiera orientar un poco lo agradecería.

Un saludo
Responder Con Cita
  #2  
Antiguo 13-02-2007
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola,

Cita:
Empezado por verodelphi
Pero no sé hacer la selección que me permita obtener aquellos nifs que empiezen por dos caracteres (esto es así porque los cif de las empresas empiezan con una letra). Entonces para que me seleccione los que son varios caracteres no sé.
Entonces si la primera letra puede ser un carácter, no nos interesa ya que es válido. El que no es válido es un carácter en la posición 2.
Puedes usar la función substr de oracle para coger el segundo carácter, pero no veo una posible comparación del caracter para validar si es numérico o no.
Así, no se si se puede hacer mejor, pero así me ha funciona en una prueba que acabo de hacer:

Código SQL [-]
 select ... from ...
where substr(dni, 2, 1) in ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')

Espero te sirva.

Saludos
Responder Con Cita
  #3  
Antiguo 14-02-2007
verodelphi verodelphi is offline
Miembro
 
Registrado: sep 2006
Posts: 23
Poder: 0
verodelphi Va por buen camino
Me ha servido un montón

Muchas gracias por responder. La verdad es que me ha servido. No estoy muy puesta en Oracle y debe haber muchas funciones con las que conseguir otras selecciones que todavía tengo que conocer.

Esto de los foros está genial, porque siempre hay alguien que te echa una mano.

Gracias de verdad.
Responder Con Cita
Respuesta



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
Porque lee la tabla completa al hacer append? judit25 Conexión con bases de datos 2 31-05-2006 16:20:37
Selección de una tabla chipsoni SQL 3 03-05-2006 16:18:38
Filtrar una tabla a partir de una seleccion hecha en una rejilla zerelho OOP 3 19-12-2005 12:59:30
Como hacer una actualizacion de una tabla a otra... uper Firebird e Interbase 0 14-07-2005 00:36:55
Hacer una copia de una tabla ElCherchu Conexión con bases de datos 2 18-07-2003 16:38:11


La franja horaria es GMT +2. Ahora son las 01:38:31.


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