定义一个SQL查询结果,可以被整个SQL使用,查询结果使用两次及以上会把查询结果放到TEMP表中,
使用了临时表,就会增加额外的I/O开销,因此,表变量的方式并不太适合数据量大且频繁查询的情况
适合数据量大且不是频繁查询的情况
适用场景
1. 子查询过多时,且同一个子查询需要被多次使用的时候
2. UNION ALL使用场景,每隔被UNION ALL的查询,有部分查询条件重复时,可以用with as查询中间表,避免重复查询
缺点
3. with as的查询结果集相对于中间表不支持索引,而且with as查询的结果数据量大时,消耗的内存就大
with as更高效的使用场景
最新推荐文章于 2023-11-02 11:19:58 发布