PDA

Ver la Versión Completa : Consulta con valores nulos interbase


afarenas
24-09-2003, 21:23:17
Como hacer el siguiente query en Interbase 6 cuando alguno de los campos es nulo?.
SELECT nombre1||' '||nombre2||' '||apellido1 nombre
FROM tabla
Tengo el problema que cuando alguno de los campos es nulo ,
la consulta retorna nulo este problema se presenta en Interbase, en oracle funciona perfecto.
Debo aclarar que estos campos son tipo cadena.
Gracias.

Viet
24-09-2003, 22:17:24
Hola Yo haria (no se si funciona en IB)


SELECT
case NULLIF(nombre1,'')||' '||NULLIF(nombre2,'')||' '||NULLIF(apellido1,'') nombre
FROM tabla


Suerte ;)

guillotmarc
25-09-2003, 10:50:50
Hola Viet.

Lamentablemente esta consulta solo funciona en Firebird 1.5. Las versiones anteriores de Interbase/Firebird no soportan las funciones ISNULL, NULLIF, COALESCE, NVL, ... que permiten sustituir un valor nulo por una constante.

En Oracle imagino que utilizaras también una de estas funciones, puesto que sinó, el estándar SQL indica que Nulo operado con cualquier otro valor, es un valor Nulo.

Si no quieres actualizar a Firebird 1.5 RC6, puedes utilizar una UDF que te proporcione externamente esa función (si no recuerdo mal, la fbudf.dll de Firebird proporciona la función NVL que tienen la misma utilidad que el NULLIF)

Saludos.

afarenas
26-09-2003, 17:18:17
Gracias por las respuestas pero no me sirven insisto que es Interbase 6. En cuanto a lo de la UDF (fbudf.dll) a la que se
refiere Viet, como hago esto o de donde se baja en fin megustaria mas detalles?
Gracias.

guillotmarc
26-09-2003, 17:33:44
http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_udf_libs

Una de las relaciones más completas se puede encontrar en la página de Claudio Valderrama, pero no parece estar activa www.cvalde.com

Saludos.