一个列有多个条件的列

时间:2017-07-25 05:30:54

标签: sql case conditional-statements

我可以将Case语句用于以下多个条件。输出应该是一列,其中所有以下条件都应该为真。如果是真的那么打印' X'否则为NULL。我正在使用SQL服务器,不知道如何使用Case语句。

WHERE 
(
    (D.Type = 'abc') 
    AND D.Status = 'C'
) 
AND 
(
    (
    AAD.D01 IS NOT NULL 
    OR AAD.D02 IS NOT NULL 
    OR AAD.D03 IS NOT NULL 
    OR AAD.D04 IS NOT NULL 
    OR AAD.D05 IS NOT NULL 
    OR AAD.D06 IS NOT NULL 
    OR AAD.D07 IS NOT NULL 
    OR AAD.D08 IS NOT NULL
    ) 
AND (AAD.B05 = 1) 
OR (AAD.B06 = 1)
)
 THEN 'X', ELSE '' END AS [Adjusted]

2 个答案:

答案 0 :(得分:0)

我会建议linq 您需要一个可以保存数据的集合

    var datalist = db.Table.Where(d=>d.Type == 'abc').Where(d=>d.Status=='C').Where(AAD=>AAD.D01 != null)......

答案 1 :(得分:0)

您可能需要EXISTS,可以在CASE条款中使用。

有一个非常简单的例子:

DECLARE @table1 TABLE (Id int)
INSERT INTO @table1 VALUES (1), (2), (6), (10)
SELECT CASE 
         WHEN EXISTS(SELECT * 
                     FROM @table1 
                     WHERE Id = 1 OR Id = 2) 
       THEN 'X' ELSE '' END AS [Adjusted]

替换

SELECT * 
   FROM @table1 
   WHERE Id = 1 OR Id = 2

用你的实际陈述。如果它不是您想要做的,请更新您的问题并提供完整的代码和更多信息。