这:
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) –