一:
我的表结构,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 |
+------+---------------------+------+
分享到:
相关推荐
以上只是SQL查询语句的一部分知识点,实际的“SQL查询语句大全”可能会包含更复杂的查询技术,如窗口函数、游标、自连接、并行查询优化等。学习和掌握SQL,能够帮助我们高效地管理和处理大量数据,是提升工作效率的...
从给定的文件信息中,我们可以提取到一系列与SQL查询语句相关的知识点,涉及表结构、数据查询、分组统计、连接操作等多个方面。以下是对这些知识点的详细解析: ### 表结构 - **books**: 包含字段`book_id`, `book...
通过以上对SQL Server中常用的查询语句的解析,我们可以看到这些语句覆盖了数据库管理中的各个方面,从简单的数据增删改查到复杂的连接操作和高级查询技术,这些知识对于高效管理和利用SQL Server数据库至关重要。
### 简单常用SQL语句 - 适合起步程序员 #### 一、基础知识与操作 **1. 创建数据库** 创建数据库是SQL中最基本的操作之一,它允许用户建立一个新的数据库实例来存储数据。语法如下: ```sql CREATE DATABASE ...
- `SELECT` 是SQL中最常用的语句之一,主要用于从数据库表中检索数据。 - **基本语法**: ```sql SELECT column_name FROM table_name; ``` - **示例**: - 假设有一个名为 `Store_Information` 的表,包含以下列...
左外连接是数据库管理系统的高级查询语句之一。LEFT OUTER JOIN语句用于连接两个表。 2. 右外连接(右连接):RIGHT OUTER JOIN 右外连接是数据库管理系统的高级查询语句之一。RIGHT OUTER JOIN语句用于连接两个表...
在SQL(Structured Query ...以上就是SQL常用的一些语句,它们涵盖了数据操作的核心功能,包括数据的复制、查询、更新和删除,以及更复杂的联接查询和统计分析。熟练掌握这些语句能帮助我们有效地管理和操作数据库。
根据提供的文件信息,我们...通过以上知识点的总结,我们可以看出,在实际的工作环境中,SQL的应用非常广泛,涵盖了基本查询、复杂查询、数据处理等多个方面。掌握这些技能对于从事IT行业的技术人员来说是非常必要的。
SQL Server 数据库管理常用的 SQL 和 T-SQL 语句 SQL Server 是一个强大的关系数据库管理系统,提供了许多实用的 SQL 和 T-SQL 语句来管理和维护数据库。以下是 SQL Server 数据库管理常用的 SQL 和 T-SQL 语句: ...
以上总结了SQL Server中常用的SQL语句,涵盖了数据库管理、表操作、基本查询到高级查询的各种场景,对于日常开发和维护SQL Server数据库非常有帮助。掌握这些语句,能够显著提高数据处理的效率和灵活性。
综上所述,掌握SQL Server中的复杂SQL语句查询涉及理解多表查询、索引设计、触发器的应用和存储过程的编写,以及查询优化技巧。只有深入理解并灵活运用这些知识,才能在实际工作中有效地管理和优化数据库查询,提高...
### 手工SQL注入常用SQL语句 #### 知识点概述 在现代网络环境中,随着业务系统的复杂度增加和技术的不断进步,安全问题日益受到重视。其中,SQL注入是一种常见的攻击方式,它通过将恶意SQL代码插入到应用程序的...
SELECT语句的结构包括选择列、从哪个表中选择、如何连接多个表(JOIN)、筛选条件(WHERE子句)、分组(GROUP BY子句)、排序(ORDER BY子句)和限制返回行数(LIMIT子句)等。 - 例如:`SELECT column1, column2 ...
MySQL常用SQL语句 MySQL是一种关系型数据库管理系统,使用SQL(Structured Query Language)语言来管理和操作数据库。下面是MySQL中一些常用的SQL语句: 创建、删除和基本查询 * 显示数据库:`show databases;` *...
本文档总结了基础常用的SQL语句,涵盖了MYSQL基础语句、数据库创建、数据表创建、数据插入、查询、更新、删除、子句、连接、NULL值处理、正则表达式、ALTER命令、服务器元数据、MYSQL及SQL注入、MYSQL导出数据等多个...
2. **SELECT语句**:SQL中最常用的语句,用于从表中选取数据。可以指定列名、表名,使用WHERE子句进行条件筛选,使用GROUP BY进行分组,HAVING用于筛选分组后的结果,以及使用ORDER BY进行排序。 3. **联接(JOIN)...
"Oracle常用语句-总结文档汇总"提供了丰富的资源,涵盖了SQL语句的基础到进阶应用,包括列行转换、SQL性能优化等多个关键知识点。 首先,列行转换是数据处理中常见的需求,Oracle提供了多种方法来实现这一操作。...
* 连接表格:使用JOIN语句连接多个表格 * 数据聚合:使用GROUP BY和HAVING语句对数据进行聚合 SQL语法详解 ------------- ### SELECT指令 SELECT指令是SQL语言的基础,用于从数据库中的表格内选出资料。SELECT...