DB2 - AUXILIO!! URgente!!

 
Vista:

AUXILIO!! URgente!!

Publicado por Cibernauta (1 intervención) el 03/12/2003 19:21:32
Soy nuevo en DB2 aunque he trabajado con otras bases de datos. El problema es el siguiente necesito filtrar de una tabla solo los codigos de 7 digitos

Select * from CLIENTES A where Lenght(A.ccndoc)=7

no funciono correctamente, me dicen por alli que debo eliminar los espacios en blanco de los lados del campo. ¿Como hago eso?

Gracias

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:AUXILIO!! URgente!!

Publicado por Lisibeth Troconis (2 intervenciones) el 09/08/2004 16:51:21
No he trabajado con db2 pero supongo que debe existir el trim para que te elimine los espacios a la derecha y a la izquierda ltrim a la izquierda o rtrim a la derecha

Entonces seria algo como:

Select * from CLIENTES A where Lenght(Trim(A.ccndoc))=7

Espero te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AUXILIO!! URgente!!

Publicado por Miriam (3 intervenciones) el 29/03/2006 18:30:08
A ver, lo mas facil es en DB2:

Select *
From CLIENTES A
Where Lenght(Ltrim(Rtrim(A.ccndoc)))=7

Recorta por la izq y por la drcha siempre y no tendras problemas nunca, pero lo que creo que te esta pasando es que tienes definido el tipo de dato del campo en la tabla como CHAR(x) (donde x es la longitud de campo) y no se si lo sabras pero todo campo CHAR incrementa con espacios en blanco la longitud de la cadena de caracteres hasta completar la longitud de campo definida en la tabla.

MARRON!!! nunca definas un campo CHAR en DB2, siempre VARCHAR independientemente de la longitud que necesites (por eso de k los libros dicen k si es menor de 30 caracteres uses CHAR y mayor de 30 VARCHAR)

Ya me contaras.

Salu2
Miriam
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar