[RESUELTO] Concatenar valores vacios en una vista

Discute sobre las herramientas de la base de datos
Responder
Trempat
Mensajes: 5
Registrado: Mar Oct 02, 2018 7:44 pm

[RESUELTO] Concatenar valores vacios en una vista

Mensaje por Trempat »

Buenas,

Des de una vista quiero concatenar los nombres y apellidos de una tabla de la siguiente manera:
SELECT "ID", "Persones"."Nom" || ' ' || "Persones"."Cognom1" || ' ' || "Persones"."Cognom2" FROM "Persones"
Pero en el resultado obtengo campos en blanco en la segunda columna, para los registros que no tienen valor en 'Cognom2'

Como puedo resolver para obtener todos los valores?

Muchas gracias
Última edición por Trempat el Dom Oct 07, 2018 12:50 pm, editado 1 vez en total.
LibreOffice 6.0.2.1 en Windows 10 Home
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Concatenar valores vacios en una vista

Mensaje por Longi »

Buenas!

A veces con una simple búsqueda en este foro ya es suficiente.(para eso se pide que los títulos de los hilos sean lo más concisos y descriptivos posible).
A veces las búsquedas las complemento con google.
Echa un vistazo a esto:

https://forum.openoffice.org/es/forum/v ... 46&start=0

Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Trempat
Mensajes: 5
Registrado: Mar Oct 02, 2018 7:44 pm

Re: Concatenar valores vacios en una vista

Mensaje por Trempat »

Tienes razón... encontré cómo hacerlo, però no lo comuniqué en el foro... mil disculpas!!
LibreOffice 6.0.2.1 en Windows 10 Home
Urxvt
Mensajes: 40
Registrado: Vie Mar 10, 2017 10:13 pm
Contactar:

Re: [RESUELTO] Concatenar valores vacios en una vista

Mensaje por Urxvt »

Yo lo que hago es usar COALESCE:

Código: Seleccionar todo

SELECT COALESCE ( "Cognoms" || ', ' || "Nom", "Nom" ) FROM ... ORDER BY ... ASC
No sé si es correcto hacerlo así, pero me funciona muy bien. Concatena el apellido + una coma separadora con espacio + el nombre. En caso de que la concatenación no tenga valor y quede vacío, mostrará únicamente el nombre, que es un campo que siempre tengo rellenado (porque si no es nombre particular es nombre de empresa).

Y lo curioso es que para ordenar datos de un formulario también me funciona, poniéndolo en las "Propiedades del formulario" > "Ordenar", así:

Código: Seleccionar todo

COALESCE ( "Cognoms" || ', ' || "Nom", "Nom" ) ASC
¡Saludos!
Debian 9 & i3wm + LibreOffice 5.2.7.2
Responder