2014-11-05 37 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