这就是我所拥有的
|name|surname|job |
|Mike|Watson |programmer|
|Josh|White |manager |
我需要做的是:
|name|surname|programmer|manager|
|Mike|Watson |programmer|null |
|Josh|White |null |manager|
最简单的方法是什么,也许不使用附加临时表?
此致
答案 0 :(得分:1)
这是case
表达式的简单应用:
select name, surname,
(case when job = 'manager' then job end) as manager,
(case when job = 'programmer' then job end) as programmer
from table t;
请注意,您需要为每列编写特定逻辑。您不能使用SQL根据行中的内容添加可变数量的列。因此,如果添加“intern'
,则必须为此值添加逻辑。
我也不清楚为什么你想要一个带有NULL
列或列名的列。据推测,你有充分的理由。
答案 1 :(得分:0)
你可以使用case和group by或pivot方法来解决它。