gpt4 book ai didi

sql - 有没有一种方法可以让我在测试其中一个结果时使用 CASE 而不是运行它两次?

转载 作者:行者123 更新时间:2023-12-01 00:03:12 24 4
gpt4 key购买 nike

有没有一种方法可以使用 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”。

最佳答案

您的语句是否运行?它不是 CASE 语句中的 bool 表达式。如果不使用 bool 值,MySQL 会默认检查 NULL 值吗?

我认为这可能是您正在寻找的:

SELECT
id,
COALESCE(
(
SELECT
MAX(value)
FROM
My_Table
WHERE
other_value = 1
), 0) AS max_value
FROM
Other_Table

关于sql - 有没有一种方法可以让我在测试其中一个结果时使用 CASE 而不是运行它两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/854747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com