1、行转列
使用PIVOT()函数
select * from #myTb
PIVOT
(
min(#myTb.尺码 /*后列值*/) FOR #myTb.列名 /*需转列*/ IN ('尺码1','尺码2')
) as PVT
使用case when
2、数据转换
语法:
CAST (expression AS data_type)
convert(数据类型,变量) ◦
示例:
select Convert(nvarchar(50),getdate())
select cast(IsAuto as int)
3、多行合并成一行
select * from tmp1
查出数据如下
但是我们需要将相同id的数据合并成一条数据,可以使用STUFF()函数
SELECT id ,
STUFF(( SELECT ',' + color
FROM dbo.tmp1
WHERE dbo.tmp1.id = a.id
FOR
XML PATH('')
), 1, 1, '')
FROM dbo.tmp1 a
GROUP BY a.id;
形成以下结果: