当前位置:Gxlcms > 数据库问题 > T-Sql之集合

T-Sql之集合

时间:2021-07-01 10:21:17 帮助过:3人阅读

SELECT * FROM (SELECT TOP ( 1 ) jm.* 2 FROM dbo.JM_FutureIncomeSource jm 3 LEFT JOIN dbo.v_FY_Room rm ON rm.RoomNO = jm.RoomNo 4 WHERE rm.ZoneID = 410105 AND jm.RemainingMonths BETWEEN 30 AND 36 AND jm.FutureIncome>20000 ORDER BY rm.CreateDate ASC ) a 5 UNION ALL 6 SELECT * FROM (SELECT TOP ( 1 ) jm.* 7 FROM dbo.JM_FutureIncomeSource jm 8 LEFT JOIN dbo.v_FY_Room rm ON rm.RoomNO = jm.RoomNo 9 WHERE rm.ZoneID = 410105 AND jm.RemainingMonths BETWEEN 58 AND 63 AND jm.FutureIncome>20000 ORDER BY rm.CreateDate ASC )b

技术分享图片

 

sql格式 

[SQL 语句 1]
UNION(all)
[SQL 语句 2]

3、union和union all的区别

union 不带all,隐式带distinct,并在结果上应用distinct(删除重复行)

union all 是没有删除重复行的union。

 4、EXCEPT (补)

ecxept 返回在第一个输入中出现,第二输入没有出现的不重复行。

技术分享图片

返回在employees出现的城市,但是没有在customers出现的

 5、INTERSECT(交)

返回在俩个输入中都出现的行(支持隐含distinct形式)

1 SELECT 6 AS age
2 INTERSECT   
3 SELECT 6 AS age

技术分享图片

性能分析,可以看出顶部输入扫描和底部输入扫描匹配开销最大。

技术分享图片

6、集合运算的优先级

INTERSECT集合运算比其他集合运算的优先级更高,最先执行INTERSECT,但是可以依靠圆括号来控制逻辑顺序。

T-Sql之集合

标签:strong   mes   tom   需要   分享图片   str   转换   优先   分析   

人气教程排行