我有关于用户和目标点的数据。这是我的数据。
User_ Target
UserA Target1
UserA Target2
UserA Target3
UserB Target1
UserB Target3
UserB Target6
我需要此输出
User FirstTarget SecondTarget ThirdTarget FourthTarget
UserA Target1 Target2 Target3
UserB Target1 Target3 Target6
用于测试的表脚本
CREATE TABLE [dbo].[UserTarget](
[User_] [varchar](50) NULL,
[Target] [varchar](50) NULL
) ON [PRIMARY]
GO
INSERT [dbo].[UserTarget] ([User_], [Target]) VALUES (N'UserA', N'Target1')
INSERT [dbo].[UserTarget] ([User_], [Target]) VALUES (N'UserA', N'Target2')
INSERT [dbo].[UserTarget] ([User_], [Target]) VALUES (N'UserA', N'Target3')
INSERT [dbo].[UserTarget] ([User_], [Target]) VALUES (N'UserB', N'Target1')
INSERT [dbo].[UserTarget] ([User_], [Target]) VALUES (N'UserB', N'Target3')
INSERT [dbo].[UserTarget] ([User_], [Target]) VALUES (N'UserB', N'Target6')
GO
你能帮助我关于sql查询吗
2条答案
按热度按时间i34xakig1#
中 的 每 一 个
您 可以 使用 类似 这样 的 东西 。 如果 目标 的 数量 是 未 定义 的 , 那么 请 谷歌 " 动态 透视 SQL Server "
cetgtptt2#
您可以使用动态SQL PIVOT
Sample Fiddle
来源:Pivot in SQL Server
正如@Larnu所建议的
Fiddle with STRING_AGG
注意:可以从SQL Server 2017 (14.x) and later开始使用STRING_AGG