MySQL中 CASE WHEN THEN then后面跟常量是没问题的 如果改成字段就没...

发布网友

我来回答

1个回答

热心网友

<p>可以的吧,出null是不是因为你字段的内容就是null啊。</p>
<p>
</p>
<p>这里是一个测试,可以看到使用列名value来做then的值是可以的:</p>
mysql>
select
*
from
aaa;
+------+-------+
|
id
|
value
|
+------+-------+
|
1
|
1
|
|
2
|
3
|
|
3
|
4
|
|
4
|
4
|
|
5
|
4
|
|
6
|
6
|
|
8
|
8
|
|
7
|
7
|
|
9
|
8
|
|
10
|
10
|
|
11
|
11
|
|
12
|
11
|
|
13
|
11
|
|
14
|
11
|
|
15
|
12
|
+------+-------+
15
rows
in
set
(0.00
sec)
mysql>
select
id,
value,
case
id
when
1
then
value
when
2
then
2
*
value
when
3
then
'xxx'
else
0
end
as
case_col
->
from
aaa;
+------+-------+----------+
|
id
|
value
|
case_col
|
+------+-------+----------+
|
1
|
1
|
1
|
|
2
|
3
|
6
|
|
3
|
4
|
xxx
|
|
4
|
4
|
0
|
|
5
|
4
|
0
|
|
6
|
6
|
0
|
|
8
|
8
|
0
|
|
7
|
7
|
0
|
|
9
|
8
|
0
|
|
10
|
10
|
0
|
|
11
|
11
|
0
|
|
12
|
11
|
0
|
|
13
|
11
|
0
|
|
14
|
11
|
0
|
|
15
|
12
|
0
|
+------+-------+----------+
15
rows
in
set
(0.00
sec)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com