【发布时间】:2017-01-20 17:02:47
【问题描述】:
你好,我有一张这样的桌子:
Building Categories Properties
-----------------------------------------
Building250 Structure Steel
Building250 Security Access Card
Building250 Security Security Guard
Building250 Security Fire Alarm System
Building250 Security Sprinklered
Building250 Security Smoke or heat detectors
Building46 Structure Brick
Building46 Structure Steel
Building46 Walls Steel Stud
Building46 Walls Masonry
Building46 Washroom OwnSpace
Building46 Washroom Common
Building46 Security Access Card
Building46 Security Burglar Alarm
我需要像这样旋转它:
Building Structure Security Walls Washroom
----------------------------------------------------------------------------
Building250 Steel Access Card
Security Guard
Fire Alarm System
Sprinklered
heat detectors
Building46 Brick Access Card Steel Stud OwnSpace
Steel Burglar Alarm Masonry Common
Sprinklered
我尝试了 SQL Pivot,但由于它需要聚合,因此它只返回给定类别的 1 个属性。还有其他方法吗?
这是我的 Pivot SQL:
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(Category)
FROM Buildings
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT Building, ' + @cols + ' from
(
SELECT Building, Category, Property, from Buildings
) x
pivot
(
min(Property)
for Category in (' + @cols + ')
) p '
execute(@query)
【问题讨论】:
-
你是如何尝试显示查询的。
-
显示您尝试过的内容。如果你表现出你的努力,你会得到更多的投入。
标签: sql sql-server pivot