2015-04-02 142 views
0

在CASE中的單行內使用多個條件的方式... MySQL中的WHEN語句有什麼方法嗎?在CASE ... WHEN語句中使用多個條件... MySQL中的WHEN語句

舉例來說,我想寫類似以下的查詢:

SELECT col1, col2, 
CASE 
    WHEN ((condition1) AND (condition2)) THEN 1 ELSE 0 
END as col3, 
col4 
FROM table1 

如何我寫的類似於MySQL中適當上面一個查詢?

+6

您完全按照您所示的方式書寫它。你運行過嗎? – zerkms 2015-04-02 04:24:26

+0

是的,我已經運行它,它說'THEN 1 ELSE 0'附近的語法錯誤。 – 2015-04-02 04:57:20

+0

這是MySQL的有效語法,應該工作,我剛剛驗證它:SELECT col1,col2, CASE WHEN((col1> 0)AND(col2> 0))THEN 1 ELSE 0 END as col3, col4 FROM(選擇1作爲col1,2作爲col2,4作爲col4)foo – 2015-04-02 05:14:31

回答

1

你提供的MySQL語句看起來是正確的。另一種方法是使用IF

SELECT col1, col2, IF((condition1) AND (condition2), 1, 0), col4 from table1; 

如需更多幫助,您可以參考:MySQL Reference Guide

1
SELECT col1, col2, 
CASE 
    WHEN (if(your_condition , 'true_Result' , 'False_result') AND if(your_condition , 'true_Result' , 'False_result')) THEN 1 ELSE 0 
END as col3, 
col4 
FROM table1 

說明: 如果(your_condition, 'true_Result', 'False_result') 如果您的條件爲真,它會在'true_result'中選擇你的值,如果條件爲假,它會從'false_Result'中選擇 例如:if(sum(columnname)=0 , 1 , 0)檢查某個特定列是否包含所有值爲0或不包含。