无法在 SQL 中转换数据

Unable to pivot data in SQL

我有一个 SQL 查询,例如

select name from customers where id in (1,2,3,4,5)

这将 return 我 5 行。 我正在尝试的是

select Q1,Q2,Q3,Q4,Q5  from(select name from customers where id in (1,2,3,4,5)  
)d pivot( max(name) for names in (Q1,Q2,Q3,Q4,Q5)
 ) piv;

将这 5 行转换为 5 列。

但是我在列中得到空值。

我不知道我哪里做错了。 任何形式的帮助,建议将不胜感激。

谢谢

您可以尝试这种方式,您正在旋转名称并选择值下的名称,因此请首先确保该 ID 是否有值并检索您尝试旋转的值:

create table #customers(id int, name varchar(50), fee int) 
insert into #customers values
(1, 'Q1', 100),
(2, 'Q2', 200),
(3, 'Q3', 300),
(4, 'Q4', 400),
(5, 'Q5', 500),
(6, 'Q5',  600),
(7, 'Q5',  700)

select Q1,Q2,Q3,Q4,Q5  
from(select name, fee from #customers where id in (1,2,3,4,5)  
)d pivot(SUM(fee) for name in (Q1,Q2,Q3,Q4,Q5)
 ) piv;

输出:

Q1  Q2  Q3  Q4  Q5
100 200 300 400 500

您想在名称下显示什么值,如果您提到了,那么我们可以为此提供更准确的解决方案。希望您能相应地更改您的代码。