2015-12-30 97 views
-1

SQL查詢:是SQL查詢中有多少條件「有效」的情況?

"SELECT Store_Name, CASE Store_Name WHEN 'abc','xyz' THEN Sales * 2 ELSE Sales END FROM Store_Information"; 

在 「當」 的條款兩個值允許像上面的查詢 - WHEN 'abc','xyz' THEN Sales * 2

編輯:我不需要運行此查詢。我需要解析這個查詢。我從Tableau得到這個。

我想知道這個查詢語法正確嗎?

+1

哪個RDBMS是這樣的?請添加一個標籤來指定您是使用'mysql','postgresql','sql-server','oracle'還是'db2' - 或者其他的東西。 –

+1

[SQL中使用'CASE']的可能重複(http://stackoverflow.com/questions/21313025/select-using-case-in-sql) –

+0

運行查詢會給你的答案比花時間問這個問題。但我會回答你的問題。它在語法上不合法。 –

回答

2

您有兩種選擇。

1)簡單的情況下表達

CASE Store_Name 
    WHEN 'abc' THEN Sales * 2 
    WHEN 'xyz' THEN Sales * 2 
    ELSE Sales 
END 

2)搜索的情況下表達。我認爲這將是更好的選擇你的任務

CASE WHEN Store_Name IN('abc', 'xyz') 
    THEN Sales * 2 
    ELSE Sales 
END 
+0

我不是要求一種替代方法來實現這一點。只是想知道這句話是否正確? –

+0

@dev:簡單的答案是否定的。你的語法不正確。 – Tom

+0

@Tom Tableau在內部將這種類型的查詢發送給我的驅動程序。 SQL解析器無法理解它。我在谷歌上找不到很多東西。所以,我在這裏問。 –