如何在Case语句中获取子查询结果

时间:2017-08-22 08:29:01

标签: sql sql-server tsql

如何将key_id结果导入subquery语句。

CASE

欲望输出

对于ID为5和4的7 - 2行

Else Matching 1 Row with 0

错误

  

子查询返回的值超过1。这是不允许的   子查询跟随=,!=,<,< =,>,> =或当子查询用作   表达。

1 个答案:

答案 0 :(得分:1)

你可以尝试:

Select * 
from TestDb T
where T.DATA=7 AND T.LEVELID IN (Select Data from dbo.Split('5,4',','))
    OR ((T.DATA IS NULL OR T.DATA<>7) AND T.LEVELID=0)

示例数据:

CREATE TABLE TESTDB (LEVELID INT, DATA INT);
INSERT INTO TESTDB values (4,7);
INSERT INTO TESTDB values (0,6);
INSERT INTO TESTDB values (0,NULL);
INSERT INTO TESTDB values (5,7);
INSERT INTO TESTDB values (6,7);

输出:

LEVELID DATA
4   7
0   6
0   NULL
5   7