這:
SELECT
t.name,
t.colour,
CASE WHEN (t.Amount < 0) THEN t.Amount END AS small,
CASE WHEN (t.Amount > 0) THEN t.Amount END AS large
FROM t
理解CASE WHEN
:
實施例#1:
假設,
IF n < 0 THEN
'N is negative'
else if n == 0 THEN 'N is Zero'
else 'N is positive'
讓我們使用CASE WHEN
表達式轉換此if-else if
鏈在MySQL:
SET @n := -9;
SELECT
CASE WHEN @n <0 THEN 'N is Negative'
WHEN @n =0 THEN 'N is 0'
ELSE 'N is positive' END AS output;
輸出:
output
N is Negative
實施例#2:
現在,我們要在以下三個轉變,如果在MySQL中陳述
IF n <0 THEN 'N is Negative'
IF n == 0 THEN 'N is Zero'
IF n > 0 THEN 'N is Positive'
SET @n := 5;
SELECT
CASE WHEN @n <0 THEN 'N is Negative' END AS negativeOutput,
CASE WHEN @n =0 THEN 'N is 0' END AS zeroOutput,
CASE WHEN @n > 0 THEN 'N is positive' END AS positiveOutput;
輸出:
現在輸出有三列:
negativeOutput zeroOutput positiveOutput
N is positive
那麼你的預期產出結構看喜歡?有多少列? – 1000111
@ 1000111剛剛將我的預期輸出添加到問題 –
您沒有用'END'終止'CASE'語句,這會導致語法無效。不僅如此,'CASE WHEN THEN END'是使用CASE的基本示例。請注意,當「金額」小於或大於0時,由於這一點,您沒有做任何事情。推薦閱讀:[控制流語句](http://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html) –