【发布时间】:2020-03-11 00:18:58
【问题描述】:
我正在练习枢轴。我有一个包含姓名和职业数据的表格(生成示例的代码如下)。我需要将职业放在列中,并在每个职业、名称下方堆叠。 Null 很好。
我看过很多帖子,this 一个是我需要的,但是一旦适应了我的数据,它只拉取 1 行数据。
这里是生成示例和实际数据透视代码的代码。我该如何纠正这个错误?
declare @occupations table (ename nvarchar(10), occupation nvarchar(10) )
insert @occupations
values
('John','Doctor'),('Mary','Doctor'),('Jack','Doctor'),('Anna','Doctor'),
('Jim','Singer'),('Kate','Singer'),('Helen','Actor'),('Paco','Singer')
SELECT [Doctor] Doctor, [Singer] Singer, [Actor] Actor
FROM @occupations
PIVOT
(min(ename)
FOR occupation IN ([Doctor],[Singer], [Actor])
)AS pp
我得到这个结果:
Doctor Singer Actor
Anna Jim Helen
应该有更多行来包含所有名称。 IE。例如,您可以在插入语句中看到有 4 位医生。所以应该是带有一些空值的 8 行。
【问题讨论】:
-
职业是否包含除医生、歌手、演员以外的其他价值观?
-
这能回答你的问题吗? how to make your data horizontal
-
@xXx,不,那个帖子没有回答,它有点不同,我实际上需要了解为什么我的代码不起作用,所以从那个帖子我无法想办法。不过,谢谢您的帮助。
标签: sql-server pivot