回答:
0
クエリが0行を返すときに(alas 1 row)を表示したい場合は、次を使用できます。
SELECT COALESCE(
( SELECT MAX(post_id) FROM my_table WHERE org_id = 3 )
, 0) AS max_id
上記のいずれも機能しません。
これは私がこれのために働くことがわかったものです:
SELECT COALESCE(A.max_id, B.dflt) FROM (
SELECT MAX(post_id) AS max_id FROM my_table WHERE org_id = 3) A
RIGHT OUTER JOIN (SELECT 0 AS dflt) B
ON 1 = 1
私はエレガントなソリューションではないことを理解していますが、仕事をしています。
行が見つからない場合は、デフォルト値を返します。
SELECT IFNULL(s_stock, 5)
FROM stock_info
WHERE s_product_id = '43';
IFNULL
Postgres(または標準SQL)では有効な構文ではありません。MySQLで使用されます。
SELECT coalesce(MAX(post_id),0) AS max_id FROM my_table WHERE org_id = 3
私にとってはうまくいきます。