"(nombre + ' ' + apellidos)" no funciona
Hola a tod@s,
tengo una consulta: Código:
SELECT (USU.nombre + ' ' + USU.apellidos) as nombre, USU.extension, Gracias |
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 |
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).
|
|
Puede usar triggers para evitar que sea nulo:
En Firebir/Interbase:
|
Access, estoy probando y parece que no lo acepta.
|
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 |
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, Gracias a tos |
Finalmente si que funciona el SQL de arriba
|
Otra alternativa para access puedes usar la funcion
iif(valorBoolean, SiEsVerdadero, SiEsFalso) entonces quedaria; iif( isNull (USU.nombre), ' ', USU.nombre ) |
La franja horaria es GMT +2. Ahora son las 16:23:49. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi