sqlserver子查询例子
【篇一:sqlserver子查询例子】
如果您看了本篇博客,觉得对您有所收获,请不要吝啬您的 推荐 。
【篇二:sqlserver子查询例子】
1。由订单信息表(torder)中,找出最早订单和最晚订单,并按早晚进行排序。(这里默认用升序) (ps:比较测试中的子查询) select * from torder
where orderdate=(select min(orderdate) from torder) or orderdate=(select max(orderdate) from torder) order by orderdate
2.找出订货量大于10的货品信息。 (ps:集合成员中的子查询) select * fromtgoods where id in
(select gid fromtorder o1 where (select sum(quantity) from torder o2 whereo1.gid=o2.gid) 10)
(1)由订单信息表中得到订货数量大于10的货品编码,即: select ordernum from torder as a where
(select sum(quantity) from torder as b where a.ordernum=b.ordernum) 10
再按照这里选出的货品编码,由货品信息表中选出这些货品的信息,有如下的sql语句。
select * from torder where ordernum in (select ordernum from torder as a where
(select sum(quantity) from torder as b where a.ordernum=b.ordernum) 10 )
3.找出有销售业绩的销售人员信息。 (ps:存在性测试中的子查询)
select * fromtemployee as a where exists (select id fromtorder as b where a.id=b.eid)
4.查询每种货品订货量大于最小一次订货量的订单信息。 (ps:批量比较测试中的子查询)
(1)大于最小一次订货量,也就是去年该种货品订货量最小一次的订单。有如下的sql语句。
(ps:使用any关键字的比较测试)
select * fromtorder as a where quantity any
select quantity from torder as b where a.gid=b.gid) 或:
select * from torder o1 where quantity any
(select quantity from torder o2 where o1.gid=o2.gid) (2)查询每种货品订货量最大的一次订单信息。
选择每种货品订货量最大的订单。有如下的sql语句。 (ps:使用all关键字的比较测试)
select * from torder as a where quantity =all
(select quantity from torder as b where a.gid=b.gid) 或:
select * from torder o1 where quantity =all
(select quantity from torder o2 where o1.gid=o2.gid)
5.在sql server managementstudio中,往“上海客户”表中添加客户信息,然后通过子查询语句将客户信息一次性添加到“客户信息”表中。
上海客户表是通过select…into语句建立一个空表,它的结构与“客户信息”表相同,所以数据是兼容的。有如下的sql语句。 (ps:使用子查询向表中添加多条记录) 通过select…into语句建立一个空表: select *
into tshcustomer from tcustomer
where address like 上海%
insert tcustomer select * from tshcustomer --查看添加结果
select * from tcustomer