【发布时间】:2018-08-09 02:17:21
【问题描述】:
我正在做一个从 MySQL 迁移到 PostgreSQL 的项目,一些函数在 PostgreSQL 中不能很好地工作,比如 IFNULL 函数。一些教程说在 PostgreSQL 中我们可以使用NULLIF 来处理它。
当我尝试时,我遇到了一个问题“argument of NOT must be type boolean, not type integer”。
这是简单的 SQL:
SELECT * FROM `tableA` WHERE not(nullif(columnA, 0));
如何解决?也许有人可以解释它如何运作良好。谢谢
【问题讨论】:
-
nullif 当你的两个参数相等时返回 null,否则,它将返回给定的第一个参数。您的“not(nullif(columnA, 0))”将被评估为“not(null)”或“not(columnA)”,这几乎不是您的意思。
-
感谢@Stacking For Heap,我终于明白它是如何工作的了。
-
很好,请接受我的回答
标签: mysql sql postgresql ifnull nullif