PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Warum gibt null||null einen Nullwert zurück, aber concat(null,null) gibt eine leere Zeichenfolge in Postgres zurück?

in concat()-Funktion:

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

Hinweis:NULL-Argumente werden ignoriert.

Stellen Sie sich Folgendes vor:

Die Eingabeargumente concat() sind dynamisch.

Wenn wir also schreiben:concat('a',null,null,null,null) => wir haben geschrieben:concat('a')

(Im Gegensatz zu || Operator, dass NULL alles zerstört)

in || Betreiber:

Also NULL||NULL hat eine falsche Syntax

Aber warum nicht Error geben? Denn wenn wir bei der concat-Operation NULL nicht zurückweisen (wie die concat-Funktion), werden sie alles überwältigen

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

Ausgabe:

NULL

weitere Informationen :