Entiendo que el estándar SQL permite múltiples valores NULL en una columna que es parte de la restricción UNIQUE.En PostgreSQL (y tal vez en otros motores), ¿por qué la instrucción UNION considera que los valores NULOS son los mismos, mientras que la restricción ÚNICA no?
Lo que no entiendo es por qué el constructo UNION (al menos en PostgreSQL) trata los valores NULOS como iguales. Por ejemplo:
$ select * from tmp_a;
a | b
---+---
a | b
a |
|
(3 rows)
$ select * from tmp_b;
a | b
---+---
a | c
a |
|
(3 rows)
$ select a, b from tmp_a union select a, b from tmp_b order by 1, 2;
a | b
---+---
a | b
a | c
a |
|
(4 rows)