sql >> Databáze >  >> RDS >> PostgreSQL

Proč null||null vrací hodnotu null, ale concat(null,null) vrací prázdný řetězec v postgresu?

ve funkci concat():

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

Poznámka:Argumenty NULL jsou ignorovány.

Představte si toto:

Vstupní argumenty concat() jsou dynamické.

Když tedy napíšeme:concat('a',null,null,null,null) => napsali jsme:concat('a')

(Na rozdíl od || operátor, který NULL všechno zničil)

v || operátor:

Takže NULL||NULL má špatnou syntaxi

Ale proč nedat Error? Protože v operaci concat, pokud neodmítneme NULL (stejně jako funkce concat), přehluší všechno

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

výstup:

NULL

další informace :




  1. Jak formátovat datum a čas v SQLite

  2. Výstup mezi dvěma daty mysql

  3. Jak se mohu připojit k odvozené tabulce?

  4. Jak získat text SQL ze spouštěče události Postgres