行列转置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yenange/article/details/81702974
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
GO
CREATE TABLE t(
	id INT IDENTITY(1,1) PRIMARY KEY,
	buyer NVARCHAR(10),
	goods NVARCHAR(10)
)
GO
INSERT INTO t VALUES ('A商','橘子')
INSERT INTO t VALUES ('B商','西瓜')
INSERT INTO t VALUES ('A商','葡萄')
INSERT INTO t VALUES ('B商','哈密瓜')
INSERT INTO t VALUES ('B商','橘子')
INSERT INTO t VALUES ('C商','山竹')
INSERT INTO t VALUES ('A商','芒果')
INSERT INTO t VALUES ('A商','香蕉')
GO
;WITH cte AS(
	SELECT ROW_NUMBER() OVER (PARTITION BY buyer ORDER BY id) AS rid,* FROM t
)
SELECT buyer,(
	SELECT goods FROM cte WHERE cte.buyer=t.buyer AND rid=1 	
) AS [商品1]
,(
	SELECT goods FROM cte WHERE cte.buyer=t.buyer AND rid=2	
) AS [商品2]
,(
	SELECT goods FROM cte WHERE cte.buyer=t.buyer AND rid=3 	
) AS [商品3]
,(
	SELECT goods FROM cte WHERE cte.buyer=t.buyer AND rid=4	
) AS [商品4]
FROM t GROUP BY buyer

猜你喜欢

转载自blog.csdn.net/yenange/article/details/81702974