有没有办法使用 CASE WHEN 测试中的值作为其结果之一,而无需两次写出 select 语句(因为它可能又长又乱)?例如:
SELECT id,
CASE WHEN (
(SELECT MAX(value) FROM my_table WHERE other_value = 1) IS NOT NULL
)
THEN (
SELECT (MAX(value) FROM my_table WHERE other_value = 1
)
ELSE 0
END AS max_value
FROM other_table
有没有办法可以将 SELECT 语句(用于测试)的第一次运行的结果也用作 THEN 值?我尝试在第一次 SELECT 之后使用“AS max_value”,但它给了我一个 SQL 错误。
更新:哎呀,正如 Tom H. 指出的那样,我在原来的问题中忘记了“IS NOT NULL”。