在Postgres中运行布尔表达式

时间:2019-04-05 11:26:50

标签: ruby postgresql psql

我试图证明ruby和postgres如何处理null相等之间的区别。

例如,在ruby中,我运行nil == nil并得到true。我想尝试在postgres中运行相同类型的查询,并显示null = null为false,但不确定如何构造它。

或者显示null = null为true和null!= null也为true。

2 个答案:

答案 0 :(得分:3)

select null = null;
 ?column?
----------

(1 row)

它不是假的,也不是真的,而是未定义的。

答案 1 :(得分:1)

几乎所有对postgres中的null求值都将返回null(缺少某些函数,例如concat())。要在评估null时返回布尔值,您必须使用IS NULL

这将返回True:SELECT NULL IS NULL

这将返回False:SELECT NULL IS NOT NULL