- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章玩转-SQL2005数据库行列转换由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
注意:列转行的方法可能是我独创的了,呵呵,因为在网上找不到哦,全部是我自己写的,用到了系统的SysColumns 。
(一)行转列的方法 。
先说说行转列的方法,这个就比较好想了,利用拼sql和case when解决即可 。
实现目的 。
。
1:建立测试用的数据库 。
2:加入测试用的数据库(先加入整齐的数据) 。
。
。
insert into RowTest values ('张三','语文','91') insert into RowTest values ('张三','数学','92') insert into RowTest values ('张三','英语','93') insert into RowTest values ('张三','生物','94') insert into RowTest values ('张三','物理','95') insert into RowTest values ('张三','化学','96') 。
。
insert into RowTest values ('李四','语文','81') insert into RowTest values ('李四','数学','82') insert into RowTest values ('李四','英语','83') insert into RowTest values ('李四','生物','84') insert into RowTest values ('李四','物理','85') insert into RowTest values ('李四','化学','86') 。
insert into RowTest values ('小生','语文','71') insert into RowTest values ('小生','数学','72') insert into RowTest values ('小生','英语','73') insert into RowTest values ('小生','生物','74') insert into RowTest values ('小生','物理','75') insert into RowTest values ('小生','化学','76') 。
。
3:设计想法 。
行转列的原理就是把行的类别找出来当做查询的字段,利用case when 把当前的分数加到当前的字段上去,最后用group by 把数据整合在一起 。
4:通用方法 。
。
declare @sql nvarchar(max) set @sql='select Name' select @sql=@sql+','+'isnull(max( case when Course='''+TCourse.Course+''' then Record end ),0)'+TCourse.Course from (select distinct Course from RowTest)TCourse 。
。
set @sql=@sql+' from RowTest group by Name order by Name' print @sql exec(@sql) 。
。
说明: 把所有的课程名称取出来作为列(查询表TCourse) 。
用case when 的方法把sql 拼出来 。
5:课外试验 。
(1)加入数据 。
。
。
去除max 方法会报错,因为一条可能对应多行数据 。
(2)加入数据 。
。
。
数据会多出一列,但是其他人无此课程就会为0 。
至此,数据行转列ok 。
(二)列转行的新方法开始了 。
实现目的 。
1:实现原理 。
在网上看了别人的做法,基本都是用union all 来一个个转换的,我觉得不太好用.
首先我想到了要把所有的列名取出来,就在网上查了下获取表的所有列名 。
然后我可以把主表和列名形成的表串起来,这样就可以形成需要的列数,然后根据判断取值就完成了了,呵呵 。
2:建立表格 。
3:加入数据 。
4:经典的地方来了 。
你没看错,一句话搞定,但是有个问题迷惑了我,我觉得还不够简化,如果可以把case when 都不用了就更好了,请大神们指点小弟一下了。怎么根据 。
。
Col的name 直接取得分数 。
最后此篇关于玩转-SQL2005数据库行列转换的文章就讲到这里了,如果你想了解更多关于玩转-SQL2005数据库行列转换的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
注意:列转行的方法可能是我独创的了,呵呵,因为在网上找不到哦,全部是我自己写的,用到了系统的SysColumns (一)行转列的方法 先说说行转列的方法,这个就比较好想了,利用拼sql和case
您好,我是编码新手,正在尝试找出此 getopt 不起作用的原因。我的编译器提示“i:o:” 错误 C2664“int getopt(int,char **,char *)”:无法将参数 3 从“co
mockjs作用就是,生成随机模拟数据,拦截 ajax 请求,可以对数据进行增删改查。在生成数据时,我们就需要能够熟练使用 mock.js 的语法。 Mockjs 的语法规范包括两部分:数据模
我用 Java 开发了一个 SDK,我也有一个运行时。我想限制使用运行时 jar 的开发。我的 SDK 是节点锁定的,但我不想保持运行时节点锁定,以便我的客户可以自由地使用我的 SDK 开发应用程序,
这是玩 Rust 的链接: http://rustbyexample.com/match/guard.html 我发现 Rust 在我对无符号变量取反时显示警告,因此执行下面的代码以 结尾 warni
我正在尝试使用简单的 创建一个按钮栏并将其不透明度更改为 50% 并提供背景 但是进入这个分区的元素表现出与父级相同的透明度 .我希望它们保持 100% 的不透明度。 (这是不可能的)。如何使这成
谁能想出一种方法来使用 ol/li 列表中的数字来标记图像? 应用一些 CSS 后应该输出以下内容: ------ ------ ------ | | | | |
我有一个我认为微不足道的问题。我必须处理德语字母表中的元音变音 (äöü)。在Unicode中,似乎有几种显示它们的方法,其中之一就是组合字符。我需要规范化这些不同的方式,将它们全部替换为单字符代码。
来源:blog.csdn.net/weixin_44730681/article/details/107944048 1 基本概念 2 添加依赖 3 配置相关属性 4 sql监控 5 慢sql记录 6
我想对我的数据库进行两次调用,这将需要一段时间才能返回结果,而且我不想阻塞当前线程。我使用 Akka Futures 来包装数据库调用。 我不想等待(阻塞)两个调用返回,而是指定要调用的回调函数,然后
细心的人都会发现github个人主页有一个记录每天贡献次数的面板,我暂且称之为贡献面板。就像下图那个样子。只要当天在github有提交记录,对应的小格子就会变成绿色,当天提交次数越多,颜色也会越深。
今天第一次看 Bazel。 关于构建 cpp tutorial ,我可以看到它如何构建简单的可执行文件和存档库,但它看起来不像示例创建或使用共享库。 有谁知道用于演示此过程的简单示例 BUILD 文件
我正在尝试让 Play 2.2 在 IntelliJ IDEA 中运行,但遇到了一些问题。 Play 2 Framework 插件似乎不适用于 Play 2.2。 使用 play 控制台设置项目并使用
我正在使用类似单选按钮的 div,有一个问题。 我这样声明一个函数和变量 我设置了两种样式,一个 .buttonUp 和 .buttonDown 应用于 div 的 onclick 事件。 var
我是一名优秀的程序员,十分优秀!