sql - "Coalesce"多列

标签 sql postgresql

如果我有一个简单的查询

SELECT row FROM table WHERE id=my_id

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

COALESCE( (SELECT row FROM table WHERE id=my_id), NULL)

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

SELECT row1,row2,row3 FROM table WHERE id=my_id

最佳答案

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

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

关于sql - "Coalesce"多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47832334/

相关文章:

sql - 将 SQL 重写为 JOINS 而不是子查询

MySQL执行时间

sql - 找出第一个超过一定值的记录

sql - 在多列上生成系列计数

ruby-on-rails - Rails - 多对多过滤

sql - 在 Oracle SQL 中查找不唯一的行

mysql - 在 SQL 中更改列类型

java - hibernate 问题 : must appear in the GROUP BY clause or be used in an aggregate function

sql - Kotlin 公开 - 没有标识列的表的实体

sql - SELECT 不返回数值