2013-04-22 180 views
6

這似乎是一個簡單的問題,但我一直沒能找到答案。我基本上是試圖做到這一點:SQL SELECT若(a =「」),然後改變B值

SELECT * FROM table1 
IF(columnA > 0) BEGIN 
columnB = 'Greater than 0' 
END 

我不希望值,表中的改變,我只是希望它在發生變化。有什麼建議麼?

+0

使用[下](http://msdn.microsoft.com/en-gb/library/ms181765.aspx)表達 – Aprillion 2013-04-22 19:10:19

回答

22
SELECT ColumnA 
     , case when ColumnA > 0 then 'Greater than 0' else ColumnB END AS ColumnB 
FROM table1; 
+1

慣於這只是改變columnA從0到'大於0'而不是columnB? – 2013-04-22 19:13:08

+1

泰勒,它只是* *檢查作爲columnA的case語句的條件。第二列是「大於0」或ColumnB的表值。嘗試一下。 – 2013-04-22 19:16:21

+0

完美!謝謝! – 2013-04-22 19:22:24

6

這應該工作:

SELECT columnA, IIF(columnA > 0, 'Greater than 0', columnB) 
    FROM table1; 
+0

我不認爲「IF」是一個函數,需要3個參數。 – 2013-04-22 19:45:21

+0

我只是告知,有一個「IIF」功能。我會認爲這就是你的意思,然後把自己打在腦袋裏。請編輯,以便我可以upvote! – 2013-04-22 19:54:41

+0

@NickVaccaro - 參見該文檔(這裏)(http://dev.mysql.com/doc/refman/5.5/en/control-flow-functions.html#function_if) – 2013-04-22 19:55:06

相關問題