在SQL中卡住了CASE语句 [英] Stuck with CASE statement in SQL

查看:98
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆