在SQL中卡住了CASE语句 [英] Stuck with CASE statement in SQL
本文介绍了在SQL中卡住了CASE语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在SQL中的select命令中卡住了CASE语句
有人可以将IF转换为SQL转换为SQL case语句谢谢。
I am stuck with CASE statement in SQL in select command
can someone please convert following IF condtion into SQL case statement thank you.
SELECT [Column1]
,SUM(IF A=0
BEGIN
IF B=1 OR B=2
BEGIN
[column0]
END
ELSE
BEGIN
NULL
END
END
ELSE IF A=1
BEGIN
IF B=1
BEGIN
[column0]
END
ELSE
BEGIN
NULL
END
END
)AS Alias_name
FROM dbo.Table
GROUP BY [column1]
推荐答案
您好,
您可以写下以下行希望这对您有用
Hi ,
You can write below lines hope this will work for you
SELECT [Column1],
SUM (CASE WHEN A=0 AND B=2 THEN [Column0]
WHEN A=0 AND B=1 THEN [Column0]
WHEN A=1 AND B=1 THEN [Column0]
ELSE NULL
END) AS AliasName
FROM
FROM dbo.Table
GROUP BY [column1]
Rajat-Indiandotnet发布的解决方案的修改版本。你需要在else中返回0,因为如果有一条记录返回NULL,那么最终结果将为NULL。对于前者1 + 4 + NULL = NULL且不是5.
A modified version for solution posted by Rajat-Indiandotnet. You need to return 0 in else because if there is one record returns NULL then the final result will be NULL. For ex. 1+4+NULL = NULL and NOT 5.
SELECT [Column1],
SUM (CASE WHEN A=0 AND (B=2 or B=1)THEN [Column0]
WHEN A=1 AND B=1 THEN [Column0]
ELSE 0
END) AS AliasName
FROM dbo.Table1
GROUP BY [column1]
这篇关于在SQL中卡住了CASE语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文