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 转换 优先 分析