我在用 SQL 编写 case 语句时遇到问题。我的第一个问题是:是否可以将下面的 if 语句写成 select 语句中 SQL 查询中的 case 语句?
如果不是,那么请查看下面的案例陈述并帮助/指导我进入有效格式。谢谢,非常感谢!
IF (var1 = 1){
do this1;
IF (var 1 = 2){
Do this2;
}Else{
do something else1;
}
Else if (Var 1 = 3){
Do this3;
}Else{
Do something else2;
}
这是我的案例陈述。我知道它不起作用,因为它不是有效的案例陈述。有人可以帮助我使其成为有效的案例陈述吗?提前致谢。
SELECT
CASE
WHEN apple.type = 1 OR apple.type = 2
THEN basket.S1
ELSE
CASE
WHEN apple.type = 0 AND basket.S2 is null
THEN basket.S1
ELSE basket.S2
ELSE
CASE
WHEN apple.type = 3 and basket.s3 is null
THEN basket.S1
ELSE basket.S3
END
END
END
FROM .....
WHERE .....
最佳答案
我认为你的案例陈述过于复杂,看看你的第一个例子,你的案例陈述应该相当简单,
有点像....
SELECT CASE
WHEN @Var1 = 1 THEN 'Something 1'
WHEN @Var1 = 2 THEN 'Something 2'
WHEN @Var1 = 3 THEN 'Something 3'
ELSE 'Something Else'
END
FROM .....
WHERE .....
你的case statement我们能不能写成这样...
SELECT
CASE
WHEN apple.[type] IN (1,2)
THEN basket.S1
WHEN apple.type = 0 AND basket.S2 is null
THEN basket.S1
WHEN apple.type = 3 and basket.s3 is null
THEN basket.S1
ELSE basket.S3
END
关于mysql - 嵌套case语句sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31215089/