Postgresql

如何在 PostgreSQL 的 Select 查詢中使用預設值?

  • March 1, 2017

如果沒有返回行,我想為應該使用的列使用預設值。這在 PostgreSQL 中可能嗎?我該怎麼做?或者有沒有其他方法可以解決這個問題?

例如這樣的:

SELECT MAX(post_id) AS max_id DEFAULT 0 FROM my_table WHERE org_id = 3

如果org_id = 3表中沒有我想返回的行0

SELECT coalesce(MAX(post_id),0) AS max_id FROM my_table WHERE org_id = 3

要麼

SELECT case count(*) when 0 then 0 else MAX(post_id) end AS max_id
FROM my_table 
WHERE org_id = 3;

如果您希望 max(post_id)null在有 1 行但 post_id 為空時出現

小提琴手

如果您想0在查詢返回 0 行時顯示(唉 1 行),那麼您可以使用:

SELECT COALESCE( 
       ( SELECT MAX(post_id) FROM my_table WHERE org_id = 3 )
              , 0) AS max_id

引用自:https://dba.stackexchange.com/questions/2804