您好我有一个查询,我想根据一个是否为空来选择两个字段之一的值。
field1 and field2
我想将它们选为complete_field
IF field1 is empty, then complete_field is field2
ELSE complete_field is field1
在php中它可以像:
$complete_field = $field1 == '' ? $field2 : $field1;
我如何在PostgreSQL中执行此操作?
我试过了:
SELECT
(IF field1 = '' THEN field2 ELSE field1) AS complete_field
FROM
table
但它不起作用。
请帮帮我:)谢谢
答案 0 :(得分:28)
使用CASE WHEN .. THEN .. ELSE .. END
,例如:
SELECT
(CASE WHEN (field1 IS NULL OR field1 = '') THEN field2 ELSE field1 END)
FROM table;
在the official docs处查看。
答案 1 :(得分:25)
答案 2 :(得分:4)
ANSI SQL函数Coalesce()就是您想要的。
select Coalesce(field1,field2)
from table;