位置: 编程技术 - 正文
注意:列转行的方法可能是我独创的了,呵呵,因为在网上找不到哦,全部是我自己写的,用到了系统的SysColumns
(一)行转列的方法
先说说行转列的方法,这个就比较好想了,利用拼sql和case when解决即可
实现目的
1:建立测试用的数据库2:加入测试用的数据库(先加入整齐的数据)
3:设计想法
行转列的原理就是把行的类别找出来当做查询的字段,利用case when 把当前的分数加到当前的字段上去,最后用group by 把数据整合在一起
4:通用方法
说明: 把所有的课程名称取出来作为列(查询表TCourse)
用case when 的方法把sql 拼出来
5:课外试验
(1)加入数据
去除max 方法会报错,因为一条可能对应多行数据
(2)加入数据
数据会多出一列,但是其他人无此课程就会为0
至此,数据行转列ok
(二)列转行的新方法开始了
实现目的
1:实现原理
在网上看了别人的做法,基本都是用union all 来一个个转换的,我觉得不太好用。
首先我想到了要把所有的列名取出来,就在网上查了下获取表的所有列名
然后我可以把主表和列名形成的表串起来,这样就可以形成需要的列数,然后根据判断取值就完成了了,呵呵
2:建立表格3:加入数据4:经典的地方来了你没看错,一句话搞定,但是有个问题迷惑了我,我觉得还不够简化,如果可以把case when 都不用了就更好了,请大神们指点小弟一下了。怎么根据
Col的name 直接取得分数
推荐整理分享玩转-SQL2005数据库行列转换(sql20054n),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:sql2005怎么使用,sql2008数据,sql20054n,sql2005数据库,sql20054n,sql2005使用教程,sql2005使用教程,sql2005数据库,内容如对您有帮助,希望把文章链接给更多的朋友!
SQL中char nchar varchar nvarchar数据类型的区别和使用环境讲解 现在就摘录一下sql联机丛书里的关于这几个数据类型的解释字符数据类型(nchar长度固定,nvarchar长度可变)和Unicode数据使用UNICODEUCS-2字符集。nchar[(n
SQL查询表结构的SQL语句使用分享 SELECT(casewhena.colorder=1thend.nameelse''end)as表名,--如果表名相同就返回空syscolumns(表字段信息表)asysobjectsda.colorderas字段序号,a.nameas字段名,(casewhenCOLUMNPROPERTY(a.i
Windows SQL添加系统用户修改系统登录密码 今天上班的时候,有个同事说不知道谁设置了开机密码,那台电脑一直没有开机密码的他现在进不了桌面那台电脑没有光驱,而我手头上启动U盘又没有
标签: sql20054n
本文链接地址:https://www.jiuchutong.com/biancheng/319422.html 转载请保留说明!友情链接: 武汉网站建设