PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Dlaczego null||null zwraca wartość null, ale concat(null,null) zwraca pusty ciąg w postgresie?

w funkcji concat():

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

Uwaga:argumenty NULL są ignorowane.

Wyobraź to sobie:

Argumenty wejściowe concat() są dynamiczne.

Więc kiedy piszemy:concat('a',null,null,null,null) => napisaliśmy:concat('a')

(W przeciwieństwie do || operator, który NULL zniszczył wszystko)

w || operator:

Więc NULL||NULL ma złą składnię

Ale dlaczego nie dać Error? Ponieważ w operacji concat, jeśli nie odrzucimy NULL (podobnie jak funkcja concat), przytłoczą wszystko

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

wyjście:

NULL

więcej informacji :




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak połączyć kolumny w Postgres SELECT?

  2. JPA generowanie duplikatów kluczy

  3. Jak uzyskać nazwy kolumn listy i typy danych tabeli w PostgreSQL?

  4. Jak zaimportować spakowany plik do Postgres Table?

  5. Trzeba przekonwertować scalanie Oracle na zapytanie do PostgreSQL