SQLSERVER行转列的2种实现方式
2017-09-16 21:58
176 查看
IF(OBJECT_ID('tbl_bigcode_pivot') IS NOT NULL) BEGIN DROP TABLE dbo.tbl_bigcode_pivot END GO CREATE TABLE tbl_bigcode_pivot ( [像素编号] INT, [波段] INT, [像素值] FLOAT ) INSERT INTO tbl_bigcode_pivot SELECT 400 [像素编号], 1 [波段],0.021347 [像素值] UNION ALL SELECT 400 [像素编号], 2 [波段],0.021195 [像素值] UNION ALL SELECT 400 [像素编号], 3 [波段],0.020949 [像素值] UNION ALL SELECT 401 [像素编号], 1 [波段],0.021366 [像素值] UNION ALL SELECT 401 [像素编号], 3 [波段],0.020968 [像素值] UNION ALL SELECT 402 [像素编号], 1 [波段],0.021378 [像素值] UNION ALL SELECT 402 [像素编号], 2 [波段],0.021226 [像素值] UNION ALL SELECT 402 [像素编号], 3 [波段],0.02098 [像素值] SELECT * FROM tbl_bigcode_pivot --CASE方式实现 SELECT [像素编号], MAX(CASE [波段] WHEN 1 THEN [像素值] ELSE 0 END) [1], MAX(CASE [波段] WHEN 2 THEN [像素值] ELSE 0 END) [2], MAX(CASE [波段] WHEN 3 THEN [像素值] ELSE 0 END) [3] FROM tbl_bigcode_pivot GROUP BY [像素编号] --PIVOT函数实现 SELECT [像素编号],CONVERT(DECIMAL(18,6),ISNULL([1],0)) AS [1],CONVERT(DECIMAL(18,6),ISNULL([2],0)) AS [2],CONVERT(DECIMAL(18,6),ISNULL([3],0)) AS [3] FROM dbo.tbl_bigcode_pivot PIVOT(MAX([像素值]) FOR [波段] IN([1],[2],[3])) dtpiv
相关文章推荐
- JAVA线程的应用实例(运用2种中断线程方式,基于实现进度条为例)
- 可编辑下拉框的2种实现方式
- css实现div隐藏的2种方式
- Bootstrap实现导航栏的2种方式
- Android自定义控件的自定义属性2种实现方式
- javaMail2种方式实现,并读取html格式邮件模板
- Android Opengl ES2.0 -实现的2种全景模式的查看方式
- Spring mvc (四) [继承MultiActionController实现以方法为单位的controller][配置2种请求的指定方式]
- css实现宽高动态变化,生成正方形div的2种方式
- android 2种切换语言方式:应用内切换和随系统而切换 代码实现重启应用
- 线程的2种实现方式
- 多线程的2种实现方式
- 2种方式实现ListView中中每一项下的任意控件的点击事件
- strlen的2种实现方式以及注意事项
- javaMail2种方式实现,并读取html格式邮件模板
- 详解java动态代理的2种实现方式
- Angular动画实现的2种方式以及添加购物车动画实例代码
- 实现计算算式字符串的2种方式(方式1)
- 可编辑下拉框的2种实现方式
- Servlet实现文件上传 2种上传方式@ MultipartConfig