postgresql select return 0 当默认值设置为 null

postgresql select return 0 when default value is set to null

有以下table

create table t1(
 id SERIAL PRIMARY KEY, 
 v1 varchar(100) DEFAULT NULL,  
 v2 text
);

执行:INSERT INTO t1 (v2) VALUES ('aaaa'), ('bbb'), ('ccc'); 然后 SELECT * FROM t1 returns 按预期执行:

1 |   | aaa
2 |   | bbb
3 |   | ccc

当 运行 以下 sql 我期望得到 1,2,3 而我得到 0 行

SELECT id FROM t1 WHERE v1=NULL也试过这个SELECT id FROM t1 WHERE LENGTH(v1)=0

我怎样才能得到 id 的 干杯

在 postgres 中检查值是否为 null 你应该使用下面的键盘:

  • 为空
  • 不为空

关于比较的更多细节:

https://www.postgresql.org/docs/9.6/functions-comparison.html#FUNCTIONS-COMPARISON-PRED-TABLE

SELECT id FROM t1 WHERE v1 IS NULL