Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Oracle (https://www.clubdelphi.com/foros/forumdisplay.php?f=22)
-   -   Hacer selección en una tabla (https://www.clubdelphi.com/foros/showthread.php?t=40310)

verodelphi 13-02-2007 11:25:25

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

Bicho 13-02-2007 12:38:34

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

verodelphi 14-02-2007 09:27:27

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.


La franja horaria es GMT +2. Ahora son las 03:26:42.

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