“合并”多个列

Dah*_*ahn 6 sql postgresql

如果我有一个简单的查询

SELECT row FROM table WHERE id=my_id

如果my_id找不到,我想要一行带有 NULL 而不是空行,我可以使用coalesce

COALESCE( (SELECT row FROM table WHERE id=my_id), NULL)
Run Code Online (Sandbox Code Playgroud)

如果我的查询返回多列并且我想要一行 NULL,我该怎么办?

SELECT row1,row2,row3 FROM table WHERE id=my_id
Run Code Online (Sandbox Code Playgroud)

cle*_*ens 3

您可以为您的参数创建一个伪表UNNEST并执行左外连接:

SELECT t.row1, t.row2, t.row3 
FROM UNNEST(ARRAY[my_id]) i LEFT OUTER JOIN table t ON t.id = i;
Run Code Online (Sandbox Code Playgroud)