sql >> Databasteknik >  >> RDS >> PostgreSQL

Varför returnerar null||null ett nollvärde men concat(null,null) returnerar en tom sträng i postgres?

i concat()-funktionen:

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

Obs! NULL-argument ignoreras.

Föreställ dig det här:

Inmatningsargumenten concat() är dynamiska.

Så när vi skriver:concat('a',null,null,null,null) => vi har skrivit:concat('a')

(I motsats till || operator som NULL förstörde allt)

i || operatör:

NULL||NULL har fel syntax

Men varför inte ge Error? För i concat-operationen, om vi inte avvisar NULL (som concat-funktionen), kommer de att överväldiga allt

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

utdata:

NULL

mer info :




  1. Gruppera efter datum, returnera rad även om inga poster hittades

  2. Hur använder man IN-operatorn med JDBI?

  3. Gå med i tre bord med MySQL

  4. SQLServer IDENTITY Kolumn med text