我有一个包含多个互斥列的数据库(不要问我为什么,有人像那样创建它.叹气).下面是一个例子.
-------------------------------------------
| ID | BLACK | WHITE | RED | GREEN | BLUE |
-------------------------------------------
| 1 | 1 | 0 | 0 | 0 | 0 |
-------------------------------------------
| 2 | 0 | 0 | 1 | 0 | 0 |
-------------------------------------------
| 3 | 0 | 1 | 0 | 0 | 0 |
-------------------------------------------
Run Code Online (Sandbox Code Playgroud)
嗯,你明白了,它包含了数千条记录.现在,我如何将它组合成一个"COLOR"列.如下.
--------------
| ID | COLOR |
--------------
| 1 | BLACK |
--------------
| 2 | RED |
--------------
| 3 | WHITE |
--------------
Run Code Online (Sandbox Code Playgroud)
我现在能想到的就是做其中的5个
UPDATE table SET COLOR = 'BLACK' WHERE BLACK = 1
Run Code Online (Sandbox Code Playgroud)
哦,我忘了提及,我目前正在处理的表包含至少 15个互斥列!有没有更简单的方法可以做到这一点?
将更改的颜色编辑为COLOR
使用a case-expression,如下面的缩写示例所示:
update table
set color=
case
when black then "black"
when red then "red"
when blue then "blue"
end;
Run Code Online (Sandbox Code Playgroud)
这是一个方形的
| 归档时间: |
|
| 查看次数: |
471 次 |
| 最近记录: |