SQL高级查询相关
来源:互联网 发布:淘宝众筹服务商 编辑:程序博客网 时间:2024/04/30 20:20
/*高级查询*/
/*子查询*/
USE northwind
SELECT orderid, customerid
FROM orders AS or1
WHERE 20 < (SELECT quantity FROM [order details] AS od
WHERE or1.orderid = od.orderid
AND od.productid = 23)
--当子查询的结果唯一的时候,可使用比较运算符
--不唯一的时候,不可使用比较,必须使用集合运算符
--集合运算符:not in/in
--gid in(1001)合法
USE pubs
SELECT au_lname, au_fname FROM authors
WHERE 100 IN
(SELECT royaltyper FROM titleauthor
WHERE titleauthor.au_ID = authors.au_id
)
/*exists*/
USE pubs
SELECT au_lname, au_fname
FROM authors
WHERE exists
(SELECT *
FROM publishers
WHERE authors.city = publishers.city)
--EXISTS 用于检查子查询返回的行是否存在
--该子查询实际上并不返回任何数据,而是返回 TRUE 或 FALSE
/*union*/
--Union 操作符:将两个或更多个 SELECT 语句的结果合并为一个结果集。
--使用 ALL 子句表示不删除重复的行。
--集合特性——唯一性,无序性
--每个union select必须结构相同,列类型,数目,次序,数据类型相同
/*distinct*/
USE pubs
SELECT AVG(DISTINCT price)
FROM titles
WHERE type = 'business'
--如果使用 DISTINCT,那么在计算总和、平均值或计数之前,先消除重复的值。
--如果使用 DISTINCT 关键字,表达式必须只包含列名。而不能包含算术表达式。
/*table类型变量*/
declare @mtab table(mid int,mname varchar(10))
insert into @mtab
print '更新之前'
select * from @mtab
update @mtab set mid=1009 where mid=1001
print '更新之后'
select * from @mtab
/*子查询*/
USE northwind
SELECT orderid, customerid
FROM orders AS or1
WHERE 20 < (SELECT quantity FROM [order details] AS od
WHERE or1.orderid = od.orderid
AND od.productid = 23)
--当子查询的结果唯一的时候,可使用比较运算符
--不唯一的时候,不可使用比较,必须使用集合运算符
--集合运算符:not in/in
--gid in(1001)合法
USE pubs
SELECT au_lname, au_fname FROM authors
WHERE 100 IN
(SELECT royaltyper FROM titleauthor
WHERE titleauthor.au_ID = authors.au_id
)
/*exists*/
USE pubs
SELECT au_lname, au_fname
FROM authors
WHERE exists
(SELECT *
FROM publishers
WHERE authors.city = publishers.city)
--EXISTS 用于检查子查询返回的行是否存在
--该子查询实际上并不返回任何数据,而是返回 TRUE 或 FALSE
/*union*/
--Union 操作符:将两个或更多个 SELECT 语句的结果合并为一个结果集。
--使用 ALL 子句表示不删除重复的行。
--集合特性——唯一性,无序性
--每个union select必须结构相同,列类型,数目,次序,数据类型相同
/*distinct*/
USE pubs
SELECT AVG(DISTINCT price)
FROM titles
WHERE type = 'business'
--如果使用 DISTINCT,那么在计算总和、平均值或计数之前,先消除重复的值。
--如果使用 DISTINCT 关键字,表达式必须只包含列名。而不能包含算术表达式。
/*table类型变量*/
declare @mtab table(mid int,mname varchar(10))
insert into @mtab
print '更新之前'
select * from @mtab
update @mtab set mid=1009 where mid=1001
print '更新之后'
select * from @mtab
- SQL高级查询相关
- sql 相关高级查询基础语法
- 高级sql学习——相关子查询和非相关子查询!!!
- SQL高级查询
- sql高级语句查询
- SQL高级查询技巧
- sql高级查询
- SQL高级查询技巧
- sql数据库高级查询
- sql -transql 高级查询
- Sql高级查询
- sql高级查询
- SQL高级查询
- SQL·高级查询
- SQL高级查询语句
- sql server高级查询
- ms sql 高级查询
- SQL高级查询
- SQL小写金额换大写金额
- SQL存储过程大全
- 流氓武汉电信也开始推送广告(系统右下角弹出UUSee广告的真正原因及解决方法)
- SQL安全性相关
- Zlib 简单的使用
- SQL高级查询相关
- P6Spy源码分析,理解跟踪SQL的工作原理
- SQL之索引
- 自定义动画效果(Iris动画修改)
- 论坛E-mail验正的正则表达式升级
- SQL之视图
- Axis创建自己的WebService--Step by Step 续
- C#如何取硬件标志
- SQL报表之户籍管理实例