Конкатенация строк - это объединение нескольких строк в одну. Мы рассматривали возможности SQL для конкатенации строк здесь.
Сейчас рассмотрим, как ведут себя NULL
значения при объединении строк.
SELECT 'Раз, ' || 'два, ' || NULL AS result
# | result |
---|---|
1 | NULL |
Если хотя бы одна из строк при конкатенации через ||
будет равна NULL
, то результат конкатенации будет NULL
.
Для тех, кто переходит с ORACLE на PostgreSQL, это может быть неожиданностью. В ORACLE значения NULL
при конкатенации обрабатываются как пустая строка ''
и не превращают результат в NULL
.
Воспользуемся функцией concat
:
SELECT concat('Раз, ', 'два, ', NULL) AS result
# | result |
---|---|
1 | Раз, два, |
Функция concat
игнорирует NULL
значения.