sql_行转列



IF object_id('tempdb..#T') IS NOT NULL
DROP TABLE #T

IF object_id('tempdb..##OMS_ColorSize201407231125') IS NOT NULL
DROP TABLE ##OMS_ColorSize201407231125

--建一个要横排的列值的临时表
SELECT ColorID
INTO #T
FROM SD_Web_Exhibition_StylesColor
GROUP BY ColorID

--将转列的值拼接成一个字符串
DECLARE @SQL NVARCHAR(MAX) = N'';
SET @SQL = STUFF((SELECT N',' + QUOTENAME(ColorID)
FROM #T
FOR XML PATH ( '' )),
1,
1,
N'');

--行转列sql: 会根据BeginQty转ColorID列,其他列自动group by
SET @SQL =
N'Select * into ##OMS_ColorSize201407231125 from SD_Web_Exhibition_StylesColor pivot(max(BeginQty) for ColorID in('
+ @SQL + N')) as p ';

--执行
EXEC(@SQL)

SELECT * FROM ##OMS_ColorSize201407231125

DROP TABLE ##OMS_ColorSize201407231125

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值