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就是这样描述它的,所以我更改了这个词。我相信将来我仍然会称它为“语句”,但也许我会学到。;)嗯,它在这里说:它是一个表达式:)