1
比方说,我有这个表:在TSQL使用旋转
Name Occupation
Samantha Doctor
Julia Actor
Maria Actor
Meera Singer
Ashely Professor
Ketty Professor
Christeen Professor
Jane Actor
Jenny Doctor
Priya Singer
我想有这样的输出:
Doctor Professor Singer Actor
Jenny Ashley Meera Jane
Samantha Christeen Priya Julia
NULL Ketty NULL Maria
我要占领行转换成列,然后通过列表中的名称占用。 我一直在尝试pivot
关系运算符,但我们传入pivot
的第一个参数应该是一个聚合函数,所以我不确定这是否是解决此查询的最佳方法。 这是我一直在使用pivot
但我使用max(name)
当然工作,它只是一个返回名称查询:
select * from occupations
pivot (max(name) for occupation in ([doctor],[actor],[singer],[professor]))
as pvt
这是使用上面的查询我的输出:
doctor actor singer professor
Samantha Maria Priya Ketty
我可以使用pivot
关系运算符来解决这个问题吗?我可以做些什么改变?
取代'SELECT * FROM occupations'使用'选择* from(select *,row_number()over(按职业顺序划分(选择null))职业)o'。你想分配一个row_number或类似的东西,使每一行不同。编辑:如果你不想让行号显示在最终结果集中,只需选择特定的列。 – ZLK