2014-7-26 sql 学习笔记——sql 行专列
来源:互联网 发布:淘宝手机版店招尺寸 编辑:程序博客网 时间:2024/04/30 12:33
行专列
教师号 星期号 是否有课
1 2 有
1 3 有
2 1 有
3 2 有`
1 2 有
写一条sql语句让你变为这样的表
教师号 星期一 星期二 星期三
1 2 1
2 1
3 1
各星期下的数字表示:对应的教师在星期几已经排的课数
CREATE TABLE #test ( teacher VARCHAR(20) , week VARCHAR(20) , class NUMERIC ) ;INSERT INTO #test ( teacher , week , class ) SELECT '1' , '星期二' , 1 UNION ALL SELECT '1' , '星期三' , 1 UNION ALL SELECT '2' , '星期一' , 1 UNION ALL SELECT '3' , '星期二' , 1 UNION ALL SELECT '1' , '星期二' , 1 ;
方法一:使用grpup by + case when 的方法。
SELECT teacher , SUM(CASE week WHEN '1' THEN 1 END) AS '星期一' , SUM(CASE week WHEN '2' THEN 1 END) AS '星期二' , SUM(CASE week WHEN '3' THEN 1 END) AS '星期三'FROM #testGROUP BY teacher
方法二:使用MS SQL 中 PIVOT 函数进行转换
SELECT teacher , [星期一], [星期二], [星期三]FROM #test PIVOT ( SUM(class) FOR [week] IN ( [星期一], [星期二], [星期三] ) ) t ;
附件:
修改表结构语句:
增加字段:alter table 表名 add 列名 属性删除字段:alter table 表名 drop column 列名 修改字段:alter table 表名 alter column 列名 set data type 属性//修改字段只能对长度进行修改,不能改列名和数据类型添加约束: 非空:alter table 表名 alter column 列名 set not null 主键:alter table 表名 add primary key(列名1,列名2。。。。) 外键:alter table 表名 add foreign key(列名)references 表名2(列名2) 唯一:alter table 表名 add unique(列名1,列名2。。。。) 检查:alter table 表名 add check(检查条件)
表的关联修改:update a set c=b.c,d.=b.d....--这里把你要修改的行自己补齐from check as a inner join hearing as b on a.CASENO=b.CASENO and a.NAME=b.NAME
0 0
- 2014-7-26 sql 学习笔记——sql 行专列
- sql 2005 行专列
- 【转载】sql 行专列经典
- sql 行专列 列转行 普通行列转换
- SQL Server2000中游标和行专列的使用例子
- sql 行专列 列转行 普通行列转换
- sql 行专列 列转行 普通行列转换
- 在论坛中出现的比较难的sql问题:26(动态行专列+合并字符串、补足行数)
- SQL——学习笔记
- SQL学习笔记[7]
- 行专列
- SQL server学习笔记——SQL server2000的安装
- pl/sql学习笔记——触发器
- 笔试SQL语句——学习笔记
- SQL学习笔记——DML
- Oracle学习笔记——动态SQL
- 学习笔记——SQL语句
- 学习笔记_oracle——PL/SQL
- Linked List Cycle II(LeetCode)
- 深入理解Servlet/JSP之“Cookie和Session原理”
- 能力的证据。
- Lotus Notes/Domino 删除用户
- jQuery_review之表单中的隔行变色以及关键字高亮显示
- 2014-7-26 sql 学习笔记——sql 行专列
- 404、500、502等HTTP状态码介绍
- 函数配接器-摘自《C++沉思录》Andrew Koenig
- hdoj2565 放大的X
- 1-2(补充)新手必备Demo的介绍(初稿).md
- UI 线程和用户线程
- HDU1003
- 常见错误
- hdu 2108 Shape of HDU(计算几何:凸包)