sql server 行转列
来源:互联网 发布:海美迪hd600a软件下载 编辑:程序博客网 时间:2024/06/07 23:34
将sql server查出的多行结果,变为一行多列显示
用到PIVOT聚合函数,用于将列值旋转为列名(即行转列)
PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P
完整语法:
table_source
PIVOT(
聚合函数(value_column)
FOR pivot_column
IN()
)
一、采用变量方式
将要转成行的列放在colList 参数中
DECLARE @sql NVARCHAR(MAX), @colList NVARCHAR(MAX)SET @colList = STUFF((SELECT ','+QUOTENAME(pp.attrName) FROM ( SELECT pt.id,pt.name Name ,cc.name categoryName,bb.name brandName, pa.name attrName, pav.value attrValue FROM temp pt LEFT JOIN attrValue pav ON pav.id = pt.id LEFT JOIN attr pa ON pa.id = pav.attr_id LEFT JOIN category cc ON cc.id = pt.category_id LEFT JOIN brand bb ON bb.id = pt.brand_id ) pp GROUP BY pp.attrName ORDER BY pp.attrName FOR XML PATH('')),1,1,'')SET @sql = N' select * from ( SELECT pt.id,pt.name Name ,cc.name categoryName,bb.name brandName, pa.name attrName, pav.value attrValue FROM temp pt LEFT JOIN attrValue pav ON pav. id = pt.id LEFT JOIN attr pa ON pa.id = pav.attr_id LEFT JOIN category cc ON cc.id = pt.category_id LEFT JOIN brand bb ON bb.id = pt.brand_id ) pp pivot (max(pp.attrValue) for pp.attrName in('+ @colList +')) b'EXEC(@sql)
二、不使用参数,
select * from ( SELECT pt.id,pt.name Name,brand.name brandName, pa.name attrName, pav.value attrValue FROM ( select pt.* from temp pt,( select pt1.name from temp pt1, p where pt1.name=p.name group by pt1.name having count(pt1.name)>1) a where pt.name=a.name ) pt LEFT JOIN attrValue pav ON pav. _id = pt.id LEFT JOIN attr pa ON pa.id = pav.attr_id LEFT JOIN brand on brand.id=pt.brand_id ) pp pivot(max(pp.attrValue) for pp.attrName in(xxx1,[xxx2],[xxx3],[xxx4])) b
0 0
- sql server行转列
- sql server 行转列
- Sql Server行转列
- sql server行转列问题
- SQL Server 横转纵 行转列
- SQL Server 行转列
- SQL SERVER 行转列例子
- sql server 行转列
- sql server 行转列
- ms server sql 行转列
- SQL Server行转列
- sql server:sql动态行转列(pivot) 例子
- Sql server行转列处理Sample
- Sql server行转列处理Sample
- Sql server行转列处理Sample
- sql server行转列 Pivot UnPivot
- SQL SERVER行转列存储过程
- sql server行转列问题总结
- 一个RIPv2案例
- java打印数字图形
- slf4j初步使用之以当前登录用户命名文件名
- python函数的lambda函数表达式
- 两栏布局——实现左边固定,右边 自适应(右边固定,左边自适应)
- sql server 行转列
- Oracle SQL查询优化方法2
- servlet
- GUI实现数据转移(文本框到文本域,流失布局)
- CentOS下连VisualSVN服务器时报SSL handshake failed: SSL error: Key usage violation in certificate has been d
- python 字符串去空格
- JavaScript中逻辑运算符(布尔操作符)
- easyrecovery 用作数据恢复的一款软件
- 13.Springboot 之 JavaMailSender发送电子邮件