Concatenazione SQL con LibreOffice Base

Buon giorno lista,
sto scrivendo un db con LibreOffice Base 6.0 e devo concatenare due
campi (DISCENTE e NATO) contenuti nella tabella T_DISCENTI utilizzando SQL

Per esempio DISCENTE=MARIO ROSSI e NATO=20/08/1970

In questo momento sono riuscito a concatenare i due campi usando le
seguenti istruzioni

SELECT "DISCENTE" + "NATO" FROM "T_DISCENTI" ORDER BY ( "DISCENTE" +
"NATO" ) ASC

Il risultato è MARIO ROSSI20/08/1970

Avrei bisogno di inserire uno spazio tra il nome e la data per ottenere
MARIO ROSSI 20/08/1970

è possibile modificare il codice SQL per ottenere ciò di cui avrei bisogno?

Grazie e buona giornata

andrea

attachment.htm (2.79 KB)

Ciao Andrea,

stringhe in SQL si mettono sotto apici (''), le virgolette ("") invece
possono e talvolta *devono* essere usati (dipende dal DB) per indicare
identificatori.

L'ordinamento lo spezzerei nelle due colonne singole "DISCENDENTE" che
"NATO" in ordine alfabetico.

SELECT "DISCENTE" + ' ' + "NATO" FROM "T_DISCENTI" ORDER BY "DISCENTE"
ASC, "NATO" ASC

Il segno '+' dovrebbe fungere da concatenatore sulle stringhe, se questo
non andasse provare con il circumflex (certi DB lo richiedevano forse
ora non più):

SELECT "DISCENTE" ^ ' ' ^ "NATO" FROM "T_DISCENTI" ORDER BY "DISCENTE"
ASC, "NATO" ASC

Matthias

attachment.htm (5.05 KB)

Ciao e grazie per la risposta,

la mia concatenazione funziona, dovrei solo aggiungere uno spazio tra il
nome e la data.

Ciao e grazie
andrea

attachment.htm (8.01 KB)

Ri ciao,

condivido la soluzione che ho ricevuto la soluzione fuori-lista da un amico

SELECT "DISCENTE" || ' ' || "NATO" FROM "T_DISCENTI" ORDER BY (
"DISCENTE" + "NATO" ) ASC

Ora il risultato è MARIO ROSSI 20/08/1970

Dentro || ' ' || posso inserire ciò che voglio, ad esempio || ' - ' || e
ottengo

MARIO ROSSI - 20/08/1970

Ciao e grazie
andrea

attachment.htm (3.96 KB)

ciao
alternativa SELECT CONCAT.
comunque personalmente quando devo utilizzare SQL trovo sempre molto
utile l'aiuto della w3schools: vedi ad esempio questo link
https://www.w3schools.com/sql/trysqlserver.asp?filename=trysql_func_sqlserver_concat

/Gaetano//<mailto://info(a)grinaldo.eu>
/
/
/

attachment.htm (6.24 KB)

Ciao Andrea,

in SQL ti suggerisco due soluzioni:

1) SELECT CONCAT("DISCENTE", CONCAT(' ', "NATO"))

2) SELECT "DISCENTE" || ' ' || "NATO"

Non so se funziona su LibreOffice... ma sono istruzioni abbastanza SQL
standard.

Buona serata.
Luca.

attachment.htm (3.71 KB)

In effetti tutti i doppi-apici " " nei comandi dovrebbero servire solamente
per preservare il caseing (Maiuscolo/minuscolo) senza alterazioni; se la
definizione del database, come appare, è tutta in maiuscolo, dovrebbero
potersi omettere. Diverso invece il caso di nomi di oggetti (tabelle,
colonne, ...) che siano scritti in minuscolo o misto.

diego

attachment.htm (4.81 KB)