PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Защо null||null връща нулева стойност, но concat(null,null) връща празен низ в postgres?

във функцията concat():

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

Забележка:NULL аргументите се игнорират.

Представете си това:

Входните аргументи concat() са динамични.

Така че, когато пишем:concat('a',null,null,null,null) => ние сме написали:concat('a')

(За разлика от || оператор, че NULL унищожи всичко)

в || оператор:

Така че NULL||NULL има грешен синтаксис

Но защо да не дадем грешка? Защото в операцията concat, ако не отхвърлим NULL (като функцията concat), те ще затрупат всичко

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

изход:

NULL

повече информация :




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql join_collapse_limit и време за планиране на заявката

  2. Две SQL LEFT JOINS дават неправилен резултат

  3. PostgreSQL:Пълно текстово търсене - Как да търсите частични думи?

  4. Инсталирането на pip е неуспешно с /usr/bin/clang:Няма такъв файл или директория

  5. Как мога да задам параметър String[] на собствена заявка?