Jon*_*nas 43 postgresql aggregate select default-value
如果没有返回行,我想为应该使用的列使用默认值。这在 PostgreSQL 中可能吗?我该怎么做?或者我还有其他方法可以解决这个问题吗?
例如这样的事情:
SELECT MAX(post_id) AS max_id DEFAULT 0 FROM my_table WHERE org_id = 3
Run Code Online (Sandbox Code Playgroud)
如果org_id = 3表中没有行,我想返回0。
Jac*_*las 55
SELECT coalesce(MAX(post_id),0) AS max_id FROM my_table WHERE org_id = 3
Run Code Online (Sandbox Code Playgroud)
或者
SELECT case count(*) when 0 then 0 else MAX(post_id) end AS max_id
FROM my_table
WHERE org_id = 3;
Run Code Online (Sandbox Code Playgroud)
如果您希望 max(post_id)null为 1 行但 post_id 为空
ype*_*eᵀᴹ 15
如果要0在查询返回 0 行时显示(alas 1 行),则可以使用:
SELECT COALESCE(
( SELECT MAX(post_id) FROM my_table WHERE org_id = 3 )
, 0) AS max_id
Run Code Online (Sandbox Code Playgroud)
小智 7
SELECT
coalesce(MAX(post_id),0) AS max_id
FROM
my_table
WHERE
org_id = 3
Run Code Online (Sandbox Code Playgroud)
如果您想对 name 字段使用默认名称,则上述方法不起作用,并且仅当您使用 number 字段时才有效。以下查询适用于所有类型的字段..
SELECT
COALESCE(
(SELECT column_name FROM my_table WHERE id = -1),
'default_value'
) AS column_name;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
117002 次 |
| 最近记录: |