FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
"(nombre + ' ' + apellidos)" no funciona
Hola a tod@s,
tengo una consulta: Código:
SELECT (USU.nombre + ' ' + USU.apellidos) as nombre, USU.extension, USU.movilMasa, USU.departamento, USU.extMovilMasa,DE.nombre AS departamento FROM USUARIO USU,DEPARTAMENTO DE WHERE USU.departamento=DE.codigo AND USU.fechaBaja IS NULL ORDER BY USU.nombre Gracias |
#2
|
||||
|
||||
Podría ser que USU.nombre o USU.apellidos sea nulo.
Nulo concatenado con cualquier cosa es nulo Nulo (+,-,*,/) cualquier cosa es nulo Nulo (and,or,not,etc.) cualquier cosa es nulo |
#3
|
|||
|
|||
Gracias duilioisola, efectivamente es nulo, pero no puedo evitar que lo sea. A veces es nulo y otras veces no, pero si es nulo necesito mostrar el nombre (sin el apellido).
|
#5
|
||||
|
||||
Puede usar triggers para evitar que sea nulo:
En Firebir/Interbase:
|
#6
|
|||
|
|||
Access, estoy probando y parece que no lo acepta.
|
#7
|
||||
|
||||
De access no tengo ni idea ni quiero tener...
Creo que no tiene la posibilidad de triggers. De todos modos, creo que hay un lugar, en donde se definen los campos que se puede marcar algo asi como "not null" A pesar de todo esto, si estás programando en Delphi, el componente que utilices debe tener un evento OnNewRecord. Ahí puedes poner algo de código para controlar esto:
De esta forma ya empiezas teniendo un string vacío y aunque no editen el DBEdit de Nombre o Apellido, el campo de la base ya tiene algo. Nota: '' no es null |
#8
|
|||
|
|||
Gracias a todos, encontré una forma de hacerlo en Access. Con la instrucción "Switch". El problema es que aplicado a Delphi no funciona, me salta un error "Argumento no valido". Les dejo el codigo:
Código:
SELECT switch(USU.apellidos is null,USU.nombre, USU.apellidos is not null,USU.nombre + ' ' + USU.apellidos) as [nombre1], USU.extension, USU.movilMasa, USU.departamento, USU.extMovilMasa,DE.nombre AS departamento FROM USUARIO USU,DEPARTAMENTO DE WHERE USU.departamento=DE.codigo AND USU.fechaBaja IS NULL ORDER BY USU.nombre; Gracias a tos |
#9
|
|||
|
|||
Finalmente si que funciona el SQL de arriba
|
#10
|
||||
|
||||
Otra alternativa para access puedes usar la funcion
iif(valorBoolean, SiEsVerdadero, SiEsFalso) entonces quedaria; iif( isNull (USU.nombre), ' ', USU.nombre ) |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Sobre "Foros Club Delphi" y mi nombre | aeff | Varios | 1 | 09-09-2007 17:00:22 |
Cómo saber el "nombre real" de un servicio | Casimiro Notevi | Windows | 10 | 11-04-2007 20:13:58 |
Google pierde el nombre "Gmail" en Europa | ptt | Noticias | 1 | 02-02-2007 15:48:33 |
"Dexter" nombre clave de Delphi 2006 | Epachsoft | Noticias | 4 | 19-06-2005 18:49:16 |
Error "Ya existe un componente con el nombre QRStandarPreview" | Jose Manuel | Impresión | 5 | 13-06-2003 07:55:26 |
|