SQLServer多行多列数据转为一行
来源:互联网 发布:梅雨知时节作品 编辑:程序博客网 时间:2024/05/20 13:36
--一行多列转一行--构建临时表create table #temp(id int,dataType int,val int,price decimal(10,2));--插入数据insert into #temp(id,dataType,val,price)select 1,1,100,20.5 union allselect 1,2,200,30.6 union allselect 1,3,300,40.7--查询数据select id,dataType,val,price from #temp;--将一列多行转换成一行select id,value,valueType+CONVERT(varchar(1),dataType) valueType from (select id,dataType,convert(decimal(10,2),val) val,convert(decimal(10,2),price) cd --注意:要转换的列要保持类型一致,不然会报错 from #temp) xunpivot (value for valueType in (val,cd)) y--将多行转换成多列select id,val1,cd1,val2,cd2,val3,cd3 from (select id,value,valueType+CONVERT(varchar(1),dataType) valueType --注意:不同类型列拼接,注意转换 from (select id,dataType,convert(decimal(10,2),val) val,convert(decimal(10,2),price) cd --注意:要转换的列要保持类型一致,不然会报错 from #temp) xunpivot (value for valueType in (val,cd)) y --注意:如果in()中为数字,用中括号([])括起来。例如:in ([001],[002],[003]) --SO问题来了:怎样调用字段? --调用字段时,同样采用[001],[002],[003]字段,SQLServer中会把中括号([])解析掉 --如果比较列标题是否一致时,比如:[001]标题解析为:001,它是否于正常的001一样呢? --答案:不一样。建议给这些特殊字段标题起个别名) m pivot (max(value) for valueType in (val1,cd1,val2,cd2,val3,cd3)) n;
0 0
- SQLServer多行多列数据转为一行
- ASP.NET sqlserver 数据转为横向显示
- Impala中多列转为一行
- sqlserver 锁定一行数据,禁止读取,修改和删除
- sqlserver 日期转为字符
- sqlserver 日期转为字符
- sqlserver 日期转为字符
- sqlserver 转为varchar类型
- sqlserver多行转一行
- SQLServer一行多列求最大值
- sqlserver数据库转为oracle数据库
- SqlServer FOR XML PATH 将查询的每一行数据添加到一个字段中
- sqlserver用当前行减去前一行的数据的简单处理方法 -- 不使用循环
- linux awk 多行转为一行
- oracle--多行转为一行 (listagg函数)
- supermap 数据转为shp
- 将数据转为json
- table数据转为json
- 长方柱类(对象数组)
- 371. Sum of Two Integers
- Android中的Service
- POJ-2676 Sudoku(DFS)
- 编程练习
- SQLServer多行多列数据转为一行
- 【杭电oj1166】敌兵布阵
- 素数筛选与最大质因子
- SODBASE应用示例:通过Restful接口采集数据
- Centos 7 安装HADOOP 2.6.0
- word 常规模板设置
- 区分操作系统的一些宏
- 我的servlet学习过程(三):Servlet
- 谱聚类