with as的写法, 有一个专有名词, 叫common table expression, 简称CTE,很多开发人员把使用这种写法当成一个提高SQL执行效率的方法, 事实究竟如何, 请往下看....在 oracle优化培训之第二期 的课程中, 我给学员讲了with as的几个用途,下面逐一介绍:
1. 通过materilize生成临时表, 达到优化SQL目的....比如一个大表(或一段查询块), 在SQL中被多次使用, 每次访问表, 都有一些共同的过滤条件, 过滤之后, 结果集变小, 这种情况就比较适合使用with as的写法....注意, 不要以为使用了with as, 就能提高性能, 使用不当反而会降低性能. 只在特定情况下才能提升效率....(col2 , ',') within group (order by col2 ASC) AS orig_value,
listagg(CASE WHEN rn=1 THEN col2 END