在MS SQL-Server,我可以做:
SELECT ISNULL(字段,'空'
但是在PostgreSQL中,我得到了一个语法错误。我如何模拟ISNULL()功能?
在MS SQL-Server,我可以做:
SELECT ISNULL(字段,'空'
但是在PostgreSQL中,我得到了一个语法错误。我如何模拟ISNULL()功能?
当前回答
SELECT CASE WHEN field IS NULL THEN 'Empty' ELSE field END AS field_alias
或者更地道:
SELECT coalesce(field, 'Empty') AS field_alias
其他回答
SELECT CASE WHEN field IS NULL THEN 'Empty' ELSE field END AS field_alias
或者更地道:
SELECT coalesce(field, 'Empty') AS field_alias
Try:
SELECT COALESCE(NULLIF(field, ''), another_field) FROM table_name
我如何模拟ISNULL()功能?
SELECT (Field IS NULL) FROM ...
请改用COALESCE():
SELECT COALESCE(Field,'Empty') from Table;
它的功能很像ISNULL,尽管提供了更多的功能。Coalesce将返回列表中的第一个非空值。因此:
SELECT COALESCE(null, null, 5);
返回5,而
SELECT COALESCE(null, 2, 5);
返回2
联合需要大量的论证。没有记录在案的最大值。我测试了100个参数,它成功了。对于绝大多数情况,这应该足够了。