Sql 如何将值拆分为不同的列?

Sql 如何将值拆分为不同的列?,sql,sql-server,Sql,Sql Server,这就是我所拥有的 |name|surname|job | |Mike|Watson |programmer| |Josh|White |manager | 我需要做的是: |name|surname|programmer|manager| |Mike|Watson |programmer|null | |Josh|White |null |manager| 如果不使用额外的临时表,最简单的方法是什么 关于您可以使用case和group by或pivot方法来

这就是我所拥有的

|name|surname|job       |
|Mike|Watson |programmer|
|Josh|White  |manager   |
我需要做的是:

|name|surname|programmer|manager|
|Mike|Watson |programmer|null   |
|Josh|White  |null      |manager|
如果不使用额外的临时表,最简单的方法是什么


关于

您可以使用case和group by或pivot方法来解决它。

这是一个简单的
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,要么是列的名称。想必,你有一个很好的理由。

你尝试了什么?这就是我要找的!thx!原因是我必须为旧的、设计糟糕的列提供数据,
CASE
是一个表达式……)@NickyvV。。SQL Server就是这样描述它的,所以我更改了这个词。我相信将来我仍然会称它为“语句”,但也许我会学到。;)嗯,它在这里说:它是一个表达式:)