在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

请改用COALESCE():

SELECT COALESCE(Field,'Empty') from Table;

它的功能很像ISNULL,尽管提供了更多的功能。Coalesce将返回列表中的第一个非空值。因此:

SELECT COALESCE(null, null, 5); 

返回5,而

SELECT COALESCE(null, 2, 5);

返回2

联合需要大量的论证。没有记录在案的最大值。我测试了100个参数,它成功了。对于绝大多数情况,这应该足够了。


我如何模拟ISNULL()功能?

SELECT (Field IS NULL) FROM ...

Try:

SELECT COALESCE(NULLIF(field, ''), another_field) FROM table_name