2014-11-05 56 views
0

我对SQL Server 2008还是比较新的,并且对CASE语句有疑问。 对于三个不同的数据库,我有三个不同的列,我需要查看三者之间数量的差异。我的查询中的其他一切都正常工作,现在我只需要添加这个CASE语句。当我使用两列(A = B)时,CASE工作得很好。但我不确定如何添加第三个。下面是我的,但它告诉我“不正确的语法附近'='。”所有字段都是数字,可能有或可能没有不同的数量。至少有一个数量关闭时,我只需要有一些东西标志我。有什么建议么? :) 谢谢。带两个以上列的CASE语句需要等于

,CASE WHEN ColumnA = ColumnB = ColumnC THEN 'N' 
ELSE 'Y' 
END AS 'Variance Y/N' 

回答

0

Case Statement,你不能同时采用两种Comparison Operators没有在它们之间有logical operator。尝试这样的..

CASE 
    WHEN ColumnA = ColumnB 
      AND ColumnB = ColumnC THEN 'N' 
    ELSE 'Y' 
    END AS 'Variance Y/N' 
+0

你不需要第三和。如果a = b和b = c,那么a总是等于c。 – LeeG 2014-11-05 17:35:35

+0

@LeeG已删除。 – 2014-11-05 17:37:56

+0

谢谢@Pradeep,工作! :) – InBetweeny 2014-11-05 19:38:45

0

试试这个

CREATE TABLE #tmp12 
(
    col1 INT, 
    col2 INT, 
    col3 int 
) 

INSERT INTO #tmp12 (col1, col2, col3) VALUES (1,2,3) 
INSERT INTO #tmp12 (col1, col2, col3) VALUES (1,1,1) 


SELECT (CASE WHEN col1 = col2 AND col1 = col3 THEN 'N' ELSE 'Y' END) FROM #tmp12