具有两列以上的CASE语句需要相等

时间:2014-11-05 17:16:10

标签: sql-server

我仍然是SQL Server 2008的新手,并对CASE语句有疑问。 我有三个不同的列用于三个不同的数据库,我需要看到三者之间的数量差异。我的查询中的其他所有工作正常,现在我只需要添加此CASE语句。当我使用两列(A = B)时,CASE工作得很好。但是我不确定如何添加第三个。下面是我的内容,但它告诉我" =#39; ='附近的语法不正确。"所有字段都是数字,可能有也可能没有不同的数量。当至少有一个数量关闭时,我只需要标记一些东西。有什么建议? :) 谢谢。

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

2 个答案:

答案 0 :(得分:0)

Case Statement中,如果没有logical operator,则不能使用两个Comparison Operators。试试这个..

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

答案 1 :(得分: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