Thanks for the explanation. I have made changes to the type and tested again. > CREATE TABLE t0(c0, c1); > CREATE VIEW v0(c0) AS SELECT c1 FROM t0 EXCEPT SELECT c0 FROM t0; > INSERT INTO t0 VALUES (NULL, 1); > SELECT c0 FROM v0; -- 1 > SELECT c1 FROM t0 EXCEPT SELECT c0 FROM t0; -- 1 > SELECT (c0 NOT BETWEEN '-1' AND c0) FROM v0; -- 1 > SELECT * FROM v0 WHERE (c0 NOT BETWEEN '-1' AND c0); -- 1 and > CREATE TABLE t0(c0 INT, c1 INT); > CREATE VIEW v0(c0) AS SELECT c1 FROM t0 EXCEPT SELECT c0 FROM t0; > INSERT INTO t0 VALUES (NULL, 1); > SELECT c0 FROM v0; -- 1 > SELECT c1 FROM t0 EXCEPT SELECT c0 FROM t0; -- 1 > SELECT (c0 NOT BETWEEN '-1' AND c0) FROM v0; -- 0 > SELECT * FROM v0 WHERE (c0 NOT BETWEEN '-1' AND c0); -- empty It is indeed the same as you say. So it's not a bug. Thank you for all.