一:
我的表结构,desc contest;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| datatime | varchar(20) | YES | | NULL | |
| result | varchar(20) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
表内数据:
+------------+--------+
| datatime | result |
+------------+--------+
| 2005-05-09 | fu |
| 2005-05-09 | fu |
| 2005-05-09 | 胜 |
| 2005-05-09 | 胜 |
| 2005-05-10 | fu |
| 2005-05-10 | fu |
| 2005-05-10 | 胜 |
+------------+--------+
如果要生成下列结果, 该如何写sql语句?
胜 负
2005-05-09 2 2
2005-05-10 1 2
1、 select datatime,sum(case when result='胜' then 1 else 0 end) as '胜', sum(case when result='fu' then 1 else 0 end) as '负' from contest group by datatime;
2、 select m.datatime,m.ceshi as '胜',n.ceshi as '败' from (select datatime,count(*) as ceshi from contest where result='胜' group by datatime) m inner join (select datatime,count(*) as ceshi from contest where result='fu' group by datatime) n on m.datatime=n.datatime;
二:面试题:一个日期判断的sql语句?
请取出tb_send表中日期(SendTime字段)为当天的所有记录?(SendTime字段为datetime型,包含日期与时间)
------------------------------------------
select * from tb where datediff(dd,SendTime,getdate())=0
注意:上面适用于sqlserver,如果是mysql的话要去掉第一个参数,如下:
select * from test2 where datediff(now(),time)=0;
三、表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。
select (case when A>B then A else B end) as value1,(case when B>C then Belse C end) as value2 from test3;
四 inner join 、left outer join 和right outer join的区别
表test2:
+----+---------------------+-------+
| id | time | name |
+----+---------------------+-------+
| 1 | 2011-08-07 21:20:43 | name1 |
| 2 | 2011-08-07 22:20:17 | name2 |
| 3 | 2011-08-07 22:20:25 | name3 |
+----+---------------------+-------+
表test3:
+------+------+------+
| A | B | C |
+------+------+------+
| 3 | 4 | 5 |
| 5 | 4 | 6 |
| 6 | 4 | 2 |
+------+------+------+
mysql> select a.id, a.time,b.B from test2 a inner join test3 b on a.id=b.A;
+----+---------------------+------+
| id | time | B |
+----+---------------------+------+
| 3 | 2011-08-07 22:20:25 | 4 |
+----+---------------------+------+
1 row in set (0.03 sec)
mysql> select a.id, a.time,b.B from test2 a left outer join test3 b on a.id=b.A;
+----+---------------------+------+
| id | time | B |
+----+---------------------+------+
| 1 | 2011-08-07 21:20:43 | NULL |
| 2 | 2011-08-07 22:20:17 | NULL |
| 3 | 2011-08-07 22:20:25 | 4 |
+----+---------------------+------+
3 rows in set (0.00 sec)
mysql> select a.id, a.time,b.B from test2 a right outer join test3 b on a.id=b.A
;
+------+---------------------+------+
| id | time | B |
+------+---------------------+------+
| 3 | 2011-08-07 22:20:25 | 4 |
| NULL | NULL | 4 |
| NULL | NULL | 4 |
+------+---------------------+------+
分享到:
相关推荐
14、利用T-SQL语句修改表 ? 15、利用T-SQL语句插入记录 ? 16、设置字段是否允许Null ? 17、利用Update语句更新表中记录 ? 18、利用Update语句更新表中记录2 ? 18、利用Update语句更新表中记录3 ? 19、利用...
10、几个简单的基本的sql语句 11、几个高级查询运算词 12、使用外连接 13、分组:Group by: 14、对数据库进行操作: 15.如何修改数据库的名称: 第二部分、 提升 1、复制表 2、拷贝表 3、跨数据库之间表的...
说明:外连接查询(表名1:a 表名2:b) SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c 说明:日程安排提前五分钟提醒 SQL: select * from 日程安排 where datediff('minute',f...
fire bird常用sql语句 一、分页写法小例: 二、显示表名和表结构 三、使用ISQL连接数据库 四、更新字段注释 五、显示字段注释 六、更新表注释 七、查询所有的表和视图(包括系统表和系统视图) 八、查询所有的用户表...
DBA常用SQL语句,其中很多ORACLE DBA需要用到的常用语句
常用的几个不好记的语句 和 数据库连接 希望给有用的
SQL查询篇第6章 简单的SELECT语句查询 6.1 查询的基本结构 6.1.1 了解SELECT语句 6.1.2 SELECT语句的语法格式 6.1.3 SELECT语句的执行步骤 6.2 简单的查询语句 6.2.1 查询表中指定的字段 6.2.2 查询所有的字段 6.2.3...
查询表的时候,有时候中间表需要重复使用,这些子查询被重复查询调用,不但效率低,而且可读性低,不利于理解。那么公式表表达式可以解决这个问题。 我们可以将公式表表达式(CET)视为临时结果集,在select、...
oracle常用的sql语句。 SQL PLUS下对数据库的常用操作语句, 比如显示当前连接用户、新建用户并授权、查询表结构、插入新记录、导入数据表等。一共34条,可能不是太多,但基本覆盖日常操作。
工作中常用的SQL + 超复杂SQL 交叉连接查询corss.txt 公交线路问题.txt 。。。。 充储过程--sql0.sql 分割字符串.txt 分布式查询.txt 分组排列进行更新.txt 别名.txt 动态SQL语句.txt 动态语句.txt 区分大小写.txt ...
本人学习MySQL笔记,常用的数据库操作增删改查等和条件,排序,分页,聚合函数,分组,连接,子查询等高级数据库操作的总结
死锁的诊断和定位 ...查询表结构 生成表结构文档 RebuildAllIndex 重建索引 查询索引碎片 查询数据库文件大小 修改max degree of parallelism 修改SQLServer最大内存 用DAC连接到SQL Server 其它SQL DBCC
利用Transact-SQL语句声明一个长度为16的nchar型变量bookname,并赋初值为”SQL Server 数据库编程”。 运算符的应用,使用teaching数据库 查询生日在’1989-01-01’之后的学生信息; 3)系统函数的应用 编程计算...
2.1.3 使用查询分析器执行sql语句 22 2.2 transact-sql 24 2.2.1 transact-sql 概述 24 2.2.2 transact-sql的主要组成 25 2.2.3 transact-sql的一些重要命令 26 2.3 oracle数据库 29 2.3.1 oracle数据库软件...
1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access...6、说明:外连接查询(表名1:a 表名2:b) selecta.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c 7、说明:在线视图查询(表名1:a )
SQL注入常用语句功能与技巧,每句都是经典。希望对想学注入的朋友们有用。。。。。
SQL基本语句使用示例 目录 --数据操作 2 --数据定义 2 --数据控制 2 --事务控制 2 --程序化SQL 2 ---局部变量 3 --IF ELSE 3 --CASE 3 --WHILE CONTINUE BREAK 3 --WAITFOR 4 ***SELECT*** 4 ***insert*** 5 ***...
一些常用的SQL语句, 连接服务器 if isnull(@userid,'')='' --如果是 Nt验证方式 begin exec @err=sp_oasetproperty @srvid,'loginsecure',1 if @err<>0 goto lberr exec @err=sp_oamethod @srvid,'connect',...
Web开发中常用的SQL语句 说明:复制表(只复制结构,源表名:a 新表名:b) select * into b from a where 1<>1 说明:拷贝表(拷贝数据,源表名:a 目标表名:b) insert into b(a, b, c) select d,e,f from b; ...
sql最全的常用命令语句 询某个数据库的连接数 select count(*) from Master.dbo.SysProcesses where dbid=db_id() --前10名其他等待类型 SELECT TOP 10 * from sys.dm_os_wait_stats ORDER BY wait_time_ms ...