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

valor+null=valor como lo hago???

Estas en el tema de valor+null=valor como lo hago??? en el foro de Bases de Datos General en Foros del Web. Estoy haciendo una consulta en la cual estoy concatenando un campo int con un char ej. "23 bis" de una tabla, el problema que tengo ...
  #1 (permalink)  
Antiguo 18/09/2008, 17:14
 
Fecha de Ingreso: abril-2008
Mensajes: 26
Antigüedad: 16 años, 7 meses
Puntos: 0
valor+null=valor como lo hago???

Estoy haciendo una consulta en la cual estoy concatenando un campo int con un char ej. "23 bis" de una tabla, el problema que tengo es que cuando mi campo char trae un null me devuelve null y no el valor, como le puedo hacer para que en vez del null me devuelva el valor? ni consulta es la sig:

Código:
SELECT b.nombre,(convert( varchar(3), a.id_art)+''+ convert( varchar(3), a.sufijo))as Articulo
FROM Articulo a INNER JOIN Documento b ON a.id_doc=b.id_doc
WHERE a.id_doc=1 and a.activo=1
  #2 (permalink)  
Antiguo 19/09/2008, 09:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: valor+null=valor como lo hago???

Transformando los NULL en 0.
NULL no es un valor vacío o cero, sino una dirección a un valor inexistente, y toda operación combinatoria o matemática con NULL da siempre NULL.

Código SQL:
Ver original
  1. SELECT
  2. b.nombre,
  3. (CONVERT( VARCHAR(3), IFNULL(a.id_art,0))+''+ CONVERT( VARCHAR(3), IFNULL(a.sufijo,0)))AS Articulo
  4. FROM Articulo a INNER JOIN Documento b ON a.id_doc=b.id_doc
  5. WHERE a.id_doc=1 AND a.activo=1
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 22:57.