sql学习记录【2】
来源:互联网 发布:小米windows平板3 编辑:程序博客网 时间:2024/05/16 18:26
1.一道SQL语句面试题,关于group by表内容:
info 表
Date result
2005-05-09 win
2005-05-09 lose
2005-05-09 lose
2005-05-09 lose
2005-05-10 win
2005-05-10 lose
2005-05-10 lose
如果要生成下列结果, 该如何写sql语句?
win lose
2005-05-09 2 2
2005-05-10 1 2
SELECT DATE AS '',SUM(CASE WHEN result='win' THEN 1 ELSE 0 END ) AS 'win',
SUM(CASE WHEN result='lose' THEN 1 ELSE 0 END ) AS 'lose'
FROM info
GROUP BY DATE;
2.表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列
SELECT (CASE WHEN a > b THEN a ELSE b END),
(CASE WHEN b > c THEN b ELSE c END)
FROM TABLE;
3.请取出tb_send表中日期(SendTime字段)为当天的所有记录? (SendTime字段为datetime型,包含日期与时间)
SELECT * FROM info WHERE DATEDIFF(dd,SendTime,getdate())=0;
4.有一张表,里面有3个字段:chinese,math,english。其中有一条记录chinese 70分,math 80分,english 58分,请用一条sql语句查询出所有记录并按以下条件显示出来(并写出您的思路):
大于或等于80表示excellent,大于或等于60表示pass,小于60分表示fail。
显示格式: 以上面的chinese 70分,math 80分,english 58分
chinese math english
pass excellent fail
SELECT (CASE WHEN chinese >= 80 THEN "excellent" WHEN chinese >= 60 THEN "pass" ELSE "fail" END) AS chinese,
(CASE WHEN math >= 80 THEN "excellent" WHEN math >= 60 THEN "pass" ELSE "fail" END) AS math,
(CASE WHEN english >= 80 THEN "excellent" WHEN english >= 60 THEN "pass" ELSE "fail" END) AS english
FROM grade;
5.请用一个sql语句得出结果
从table1,table2中取出如table3所列格式数据,注意提供的数据及结果不准确,只是作为一个格式向大家请教。如使用存储过程也可以。
table1
月份mon 部门dep 业绩yj
一月份 01 10
一月份 02 10
一月份 03 5
二月份 02 8
二月份 04 9
三月份 03 8
table2
部门dep 部门名称dname
01 国内业务一部
02 国内业务二部
03 国内业务三部
04 国际业务部
table3 (result)
部门dep 一月份 二月份 三月份
01 10 null null
02 10 8 null
03 null 5 8
04 null null 9
SELECT table1.dep,
SUM(CASE WHEN mon = "一月份" THEN 'yj' ELSE 0 END) AS jun,
SUM(CASE WHEN mon = "二月份" THEN yj ELSE 0 END) AS feb,
SUM(CASE WHEN mon = "三月份" THEN yj ELSE 0 END) AS mar
FROM table1 RIGHT JOIN table2
ON table1.dep = table2.dep
GROUP BY table1.dep;
定义和用法
DATEDIFF() 函数返回两个日期之间的天数。
语法
DATEDIFF(datepart,startdate,enddate)
FROM:http://blog.sina.com.cn/s/blog_6fe9edef0101i6z0.html
- sql学习记录【2】
- SQL学习-sqlzoo练习题记录(2)
- sql 学习记录
- SQL学习记录
- sql学习记录
- SQL 语句学习记录
- oracle sql 学习记录
- SQL 学习记录
- oracle sql 学习记录
- 《sql必知必会》学习记录
- SQL学习记录:集合
- SQL学习记录
- SQL学习记录
- SQL 学习记录
- sql学习记录
- SQL学习记录
- SQL语法学习记录
- pl/sql学习2——pl/sql记录
- poj 3661 (dp)
- C++ 八皇后 递归算法实现
- STM32启动模式及API
- 气质另类人嚣张, 道家建迎横过江
- BZOJ 4552: [Tjoi2016&Heoi2016]排序
- sql学习记录【2】
- android 当设置Activity状态栏为透明时,键盘弹出ScrollView滚动无效解决方案
- Java Web开发环境搭建之windows
- stm32启动代码分析
- JNI之——Can't load IA 32-bit .dll on a AMD 64-bit platform错误的解决
- Java Calendar获取年、月、日、时间
- 二叉树的遍历
- 如何查看bios版本号?
- 常用排序算法稳定性分析