Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Unir contenido de campos omitiendo los null (https://www.clubdelphi.com/foros/showthread.php?t=14551)

el-otro 23-09-2004 18:39:31

Unir contenido de campos omitiendo los null
 
Hola amigos:
Hace poco hice una consulta para unir campos de una tabla en sql, y fui rapida y más que correctamente atendido. Hoy os ruego complicar un poco el problema, por si pudierais ayudarme.

Lo que trato de hacer es crear un campo que sea la suma (en campos de texto) de un grupo de campos de texto, que además, y para complicarlo un poco estan en distintas tablas. En principio el sistema funciona, salvo cuando uno de los campos esta NULL, en cuyo caso el resultado de la unión es un campo NULL.

Se me han ocurrido varias soluciones que no han funcionado que son las siguientes:

GENERAR UN CAMPO NUEVO CON LA SUMA DE LOS OTROS
Código SQL [-]
((ISNULL (e.nombre,'') +
(ISNULL (d.Nombre,'')  +
(ISNULL (p.nombre,'') +
(ISNULL (a.titulo,'')) AS Total
Error cerca de la palabra as

CREAR CAMPOS NUEVOS Y SUMARLOS
Código SQL [-]
ISNULL (e.nombre,'') AS enombre,
ISNULL (d.Nombre,'')  AS dnombre,
ISNULL (p.nombre,'') AS pnombre,
ISNULL (a.titulo,'') AS atitulo,
(enombre + dnombre + pnombre + atitulo) as Total
El nombre de la columna enombre no es valida.

Esta misma formula la he utilizado colocando un punto así
Código SQL [-]
ISNULL (e.nombre,'') as e.nombre, ...
En cuyo caso obtengo un error cerca del carácter .

Así que ando un poco perdido, me podrias hechar una mano, os quedaré profundamente agradecido.

Salu2

Víctor / El-Otro

Investment 24-09-2004 09:36:51

En Sql esto funciona y creo que te sirve:

Código:

Select case ISNULL(len(e.Nombre),0)
        when 0 then ''
        else e.Nombre
      end  +
      case ISNULL(len(d.Nombre),0)
        when 0 then ''
        else d.Nombre
      end  +
      case ISNULL(len(p.Nombre),0)
        when 0 then ''
        else p.Nombre
      end  +
      case ISNULL(len(a.Titulo),0)
        when 0 then ''
        else a.Titulo
      end        as TOTAL
from TABLA


el-otro 28-09-2004 08:39:23

Muchisimas gracias, me ha sido muy util.


El-Otro / Victor


La franja horaria es GMT +2. Ahora son las 19:41:29.

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