PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Perché null||null restituisce un valore null ma concat(null,null) restituisce una stringa vuota in postgres?

nella funzione concat():

text concat(str "any",...)  Concatenate all arguments. NULL arguments are ignored.

Nota:gli argomenti NULL vengono ignorati.

Immagina questo:

Gli argomenti di input concat() sono dinamici.

Quindi, quando scriviamo:concat('a',null,null,null,null) => abbiamo scritto:concat('a')

(Al contrario di || operatore che NULL distrutto tutto)

in || operatore:

Quindi NULL||NULL ha una sintassi sbagliata

Ma perché non dare Error? Perché nell'operazione concat, se non rifiutiamo il NULL (come la funzione concat), travolgeranno tutto

SELECT NULL ||'aaa'||'bbb'||'ccc'||'ddd'

uscita:

NULL

maggiori informazioni :