SQL server 动态行转列】的更多相关文章

一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段: 方法二:使用拼接SQL,动态列字段: 方法三:使用PIVOT关系运算符,静态列字段: 方法四:使用PIVOT关系运算符,动态列字段: 扩展阅读一:参数化表名.分组列.行转列字段.字段值: 扩展阅读二:在前面的基础上加入条件过滤: 参考文献(References) 二.背景(Contexts) 其实行转列并不是一个什么新鲜的…
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段; 方法二:使用拼接SQL,动态列字段; 方法三:使用PIVOT关系运算符,静态列字段; 方法四:使用PIVOT关系运算符,动态列字段; 二.背景(Contexts) 其实行转列并不是一个什么新鲜的话题了,甚至已经被大家说到烂了,网上的很多例子多多少少都有些问题,所以我希望能让大家快速的看到执行的效果,所以在动态列的基础上再把…
用聚合函数配合CASE语句实现行转列功能: 现在分享一下具体实现代码: 转换前效果: PlanName PlanType PlanLimit 计划1 计划类型1 RMB 1,000,000 计划1 计划类型2 RMB 1,000,000 计划1 计划类型3 RMB 1,000,000 计划2 计划类型1 RMB 1,000,000 计划2 计划类型2 RMB 1,000,000 计划2 计划类型3 RMB 1,000,000 计划3 计划类型1 RMB 1,000,000 计划3 计划类型2 R…
分两步查询,第一步查询出动态列,第二步使用PIVOT函数. 代码: List<DataTable> dataTableList = new List<DataTable>(); #region 指标 DataTable dtEvaItemTitle = db.RunTable<Edu_EvaluationRecord>(string.Format(@" select distinct eva.id, eva.name from Edu_EvaluationRe…
http://www.cnblogs.com/gaizai/p/3753296.html http://www.cnblogs.com/maanshancss/archive/2013/03/13/2957108.html…
Open the first article 在本文章中主要介绍以下内容: 1.静态行转列 2.静态列转行 3.动态行转列 4.动态列转行 1.静态行转列 --静态的行转列 --新建一个科目成绩表 --三个字段:学生名称,科目,成绩 CREATE TABLE SubjectScore ( StuName ), SubjectName ), Fraction ,) ) --插入4条数据 INSERT INTO SubjectScore ) INSERT INTO SubjectScore ) IN…
前段时间开发系统时,有个功能是动态加载列,于是就使用了SQL Server自带的PIVOT函数进行行转列,开始用的非常溜,效果非常好.但是提交测试后问题来了,测试添加的列名中包含空格,然后就杯具了,功能报错了, 一波未平一波又起,测试添加的数据中包含有以数字开头的,结果又GG了,好沮丧啊!!!!!! 于是开启了查找资料之路,发现只要把列名用方括号[]包起来,问题就解决了,然后就实践了一下,果然以上两个问题都解决了,世界瞬间美好了!!! 然后自己又添加了一些包含特殊字符等的数据,一切都OK没有出现…
今天有个同事找我,他说他有个需求,需要进行行转列,但是又跟一般的行转列有些区别,具体需求如下所说,需要将表1的数据转换为表2的显示格式. 我想了一下,给出了一个解决方法,具体如下所示(先给出测试数据) INSERT INTO TEST SELECT 1,    1,    '定型名称',    '预定型'           UNION ALL SELECT 1,    2,    '进布方式',    '调平'             UNION ALL SELECT 1,    3,   …
)) , 'aa') , 'bb') , 'aaa') , 'bbb') , 'ccc') go , , '') from tb group by id…
select 身份证号码, MAX(t.单位编号) 单位编号, MAX(t.姓名) 姓名, MAX(case when t.rows=1 then convert(varchar(max),疾病名称) end) 疾病1, MAX(case when t.rows=2 then convert(varchar(max),疾病名称) end) 疾病2, MAX(t.单位名称) 单位名称, MAX(t.医院编码) 医院编码, MAX(t.医院名称) 医院名称, MAX(t.人员类别) 人员类别, ma…