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

Hvorfor returnerer null||null en null-værdi, men concat(null,null) returnerer en tom streng i postgres?

i concat() funktion:

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

Bemærk:NULL-argumenter ignoreres.

Forestil dig dette:

Indgangsargumenterne concat() er dynamiske.

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

(I modsætning til || operator, der NULL ødelagde alt)

i || operatør:

NULL||NULL har en forkert syntaks

Men hvorfor ikke give Error? Fordi i concat-operationen, hvis vi ikke afviser NULL (ligesom concat-funktionen), vil de overvælde alt

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

output:

NULL

flere oplysninger :




  1. viser én kolonne flere gange med data fra 3 forskellige datointervaller

  2. Sådan tilslutter du tabeller på regex

  3. mySQL tilføjer kolonneskift data

  4. Sådan vælger du den rigtige database til din virksomhed