IF OBJECT_ID(N'a') IS NOT NULL DROP TABLE a CREATE TABLE a (id INT NOT NULL, NAME VARCHAR(20), class VARCHAR(20), COUNT INT, date DATETIME ) INSERT INTO a VALUES ('1','苹果','水果',10,'2011-7-1'),('1','桔子','水果',20,'2011-7-2'),('1','香蕉','水果',15,'2011-7-3') INSERT INTO a VALUES('2','白菜','蔬菜',12,'2011-7-1'), ('2','青菜','蔬菜',19,'2011-7-2') 如果想要得到下面的结果:(Id唯一,Date选最近的一次) 1 香蕉 水果 15 2011-7-3 2 青菜 蔬菜 19 2011-7-2 语句如下: SELECT * FROM A T WHERE NOT EXISTS (SELECT * FROM A WHERE id=t.id AND date>t.date) 注:NOT EXISTS 的作用与 EXISTS 正相反。如果子查询没有返回行,则满足 NOT EXISTS 中的 WHERE 子句。 即Exists做为WHERE条件时,是先对where前的主查询进行查询,然后用主查询的结果一个一个的代入exists的子查询进行判断,如果为真则输出当前这一条主查询的结果,否则不输出
发表评论
-
转:避免全表扫描的sql优化
2015-02-05 16:37 1342http://tech.diannaodian.com/dw/ ... -
给表加上聚集索引和非聚集索引
2014-12-11 17:28 703创建简单非聚集索引 以下示例为 Purchasing.Pro ... -
查看表中索引语句
2014-12-11 10:37 683SELECT object_name(object_id) ... -
SQL2008一行转多行的精典写法
2013-08-28 12:06 420--创建测试表 create table t1( id ... -
在sql server中利用with as实现递归功能
2013-06-25 10:48 537在sqlserver2005之前,要实现递归功能比较麻烦,比如 ... -
SQL 2005 with(nolock)详解
2013-06-17 17:03 584大家在写查询时, ... -
用SQL语句查询每门成绩都大于80的学生姓名
2013-05-29 10:39 1732昨天遇到的一个SQL面试题,感觉很有趣。 表名stu 结构 ... -
SqlServer强制断开数据库已有连接的方法
2013-02-22 11:03 1626在master数据库中执行如下代码 declare @i IN ... -
Sql获取第一天、最后一天
2013-01-03 14:56 9686① 本月第一天(--减去今天再加上1天) SELECT DAT ... -
表函数与游标
2012-12-25 16:07 754--建立数据源 create table tb1(zm ch ... -
sql server 2005 输出表的函數用法
2012-12-25 16:02 837view sourceprint? 01 --sql ser ... -
SQL杂谈
2012-12-14 17:33 7511、如何用convert什么的把带有时分秒的日期转为时分秒都0 ... -
用FOR XML PATH将查询结果以XML输出
2012-09-20 17:54 1044本文从此而来 http://www.cnblogs.com/d ... -
left join on and
2012-09-20 10:23 896数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临 ... -
筛选索引简单使用
2012-08-17 11:29 1158对于在强制实施数据完整性时的一种常见需求,也可以用筛选索引来解 ... -
排名函数(ROW_NUMBER、RANK、DENSE_RANK)及OVER子句
2012-08-10 10:36 6632--在部门内新水排名(如果有相同名次,用dense_rank) ... -
SQL SERVER 中行列转换 PIVOT UNPIVO
2012-08-18 15:34 2337PIVOT用于将列值旋转为列名、同时执行聚合运算(即行转列), ... -
Apply简单使用举例
2012-08-09 17:20 1032APPLY APPLY运算符把右表表达式应用左输入中 ... -
SQL Server 2008语句大全完整版
2012-08-09 10:39 1393--======================== ... -
Exists练习查找最小缺失值(Missing Value)
2012-07-17 09:34 1001第一种方法 USE tempdb; GO IF OBJE ...
相关推荐
该练习题涵盖了多种查询类型,包括简单查询、连接查询、子查询和 EXISTS/NOT EXISTS 查询等。 1. 检索电脑系的全体学生的学号和性别 该查询使用了简单的SELECT语句,选择S表中的Sno、Sname和Sex列,条件是Sdept=’...
这可以通过使用`NOT EXISTS`子句实现。查询语句如下: ```sql Select * from 职工 where not exists(select * from 参加 where 参加 . 职工号 = 职工 . 职工号 ); ``` 这个查询会返回所有在“职工”表中但不在...
create database if not exists hr DEFAULT CHARACTER set utf8; use hr; drop table if exists departments; drop table if exists employees; drop table if exists jobs; drop table if exists locations; drop...
总结来说,嵌套查询在SQL中扮演着至关重要的角色,尤其是`EXISTS`和`NOT EXISTS`子查询,它们允许我们在复杂的查询中处理存在性和非存在性条件。理解并熟练运用这些技术对于数据库查询优化和数据提取至关重要。
本节内容涵盖了数据库原理和SQL查询的多个知识点,包括SELECT语句、WHERE语句、多表连接、子查询、EXISTS语句、NOT IN语句、NOT EXISTS语句等。这些知识点都是数据库设计和开发的基础概念,掌握这些知识点对于数据库...
1. 子查询和NOT EXISTS操作符:在第一个查询中,我们使用了NOT EXISTS子查询来找出没有下过采购订单的供应商。这涉及到表`Suppliers`和`Orders`之间的关联,通过比较`supplier_id`来确定供应商是否下过订单。`NOT ...
查询语句:SELECT DISTINCT Sno FROM SC AS X WHERE NOT EXISTS (SELECT * FROM SC AS Y WHERE Y.Sno = 'S3' AND NOT EXISTS (SELECT * FROM SC AS Z WHERE Z.Sno = X.Sno AND Z.Cno = Y.Cno)) ; 知识点:本查询...
数据库SQL查询语句练习题 ...SQL语句:SELECT DISTINCT Sno FROM SC X WHERE NOT EXISTS (SELECT * FROM SC Y WHERE Y.Sno = ‘S3’ AND NOT EXISTS (SELECT * FROM SC Z WHERE Z.Sno = X.Sno AND Z.Cno = Y.Cno));
CREATE TABLE IF NOT EXISTS student_info ( stu_id STRING COMMENT '学生 id', stu_name STRING COMMENT '学生姓名', birthday STRING COMMENT '出生日期', sex STRING COMMENT '性别' ) ROW FORMAT DELIMITED ...
具体来说,我们将学习如何使用SELECT语句来检索数据、使用WHERE子句来过滤数据、使用AND和OR逻辑运算符来组合条件,以及使用NOT EXISTS和IN子句来实现复杂的查询逻辑。 1. 检索电脑系的全体学生的学号和性别 在这...
where NOT EXISTS (Select * from E where E.dno = 3 and NOT EXISTS (Select * from W where W.eno = E.eno and W.pno = P.pno)) 解释:该查询语句使用了 NOT EXISTS 谓词,条件是全体 3 号部门的职工都参加了的...
这些SQL练习题主要涉及...以上这些SQL练习题涵盖了基础的SQL查询语法,如SELECT、FROM、WHERE、JOIN、GROUP BY、HAVING、IN、NOT IN、EXISTS等,以及对多表连接和子查询的应用,对于学习和巩固SQL查询技巧非常有帮助。
- EXISTS、NOT EXISTS:检查子查询是否返回至少一条记录。 4. **视图(View)** - 视图是虚拟表,基于一个或多个表的查询结果,可以简化复杂查询,提供数据的安全性。 5. **存储过程(StoredProcedure)** - 可...
萨师煊、王珊老师的 (1) select * from teacher where Sname not like '张%' and Sname not like '王%' ... select * from teacher where not exists ( select * from tb where teacher.tid=tb.tid )
-带有EXISTS谓词的子查询 -集合查询 -基于派生表的查询 -Select总结 下午上次课学到了嵌套查询-3 今天我们来看一下 带有EXISTS谓词的子查询 3/20 15:30 ...NOT EXISTS谓词: 若内层查询结果非空,则外层
2. EXISTS和NOT EXISTS子句通常用于子查询中,用以判断子查询返回的结果集是否为空。EXISTS子句在找到至少一条符合条件的记录时就会返回TRUE,而不关心具体有多少条符合条件的记录;相反,NOT EXISTS子句则用于判断...
- **使用存在子查询**:有时候可以利用 `EXISTS` 或 `NOT EXISTS` 来代替 `IN` 或 `NOT IN`,这可能会带来更好的性能。 - **避免使用嵌套子查询**:尽量减少子查询的层级,过多的嵌套可能会导致性能下降。 - **考虑...