en la función concat():
text concat(str "any",...) Concatenate all arguments. NULL arguments are ignored.
Nota:los argumentos NULL se ignoran.
Imagina esto:
Los argumentos de entrada concat() son dinámicos.
Así que cuando escribimos:concat('a',null,null,null,null) => hemos escrito:concat('a')
(A diferencia del || operador que NULL destruyó todo)
Entonces NULL||NULL tiene una sintaxis incorrecta
Pero ¿por qué no dar Error? Porque en la operación concat, si no rechazamos el NULL (Como la función concat), lo abrumarán todo
SELECT NULL ||'aaa'||'bbb'||'ccc'||'ddd'
salida:
NULL