Я пытаюсь понять разницу между concat () и ||в postgres при использовании нулей.Почему concat () возвращает пустую строку, если обе стороны concat равны нулю?
Возьмите этот запрос Например:
SELECT concat(NULL,NULL) AS null_concat, NULL||NULL AS null_pipes,
concat(NULL,NULL) IS NULL is_concat_null, NULL||NULL IS NULL is_pipe_null
вернет:
![enter image description here](https://i.stack.imgur.com/tCe0F.png)
Я понимаю, что concat () игнорирует нули, но если все значения в concat равны нулю, разве ожидаемый результат не будет нулевым?Это типичное поведение всех функций в postgres?Я не смог найти ничего в документации по этому сценарию.
Редактировать:
У меня была мысль, что, возможно, это был ожидаемый результат любой строковой функции, но это не похоже надело.И upper (), и left () возвращают нули, если передано нулевое значение:
SELECT concat(NULL), NULL||NULL, UPPER(null), left(NULL,1)
Результат:
![enter image description here](https://i.stack.imgur.com/xe4Vq.png)