标签:使用 strong 数据 io for art re c
假如有如下表,其中各个i值对应的行数是不定的
这是一个比较典型的行列转换,有好几种实现方法
1.自定义函数实现
虽然这种方式可以实现需求,但是如果表t的数据量很大,i的值又很多的情况下,因为针对每个i值都要执行一句select,扫描和排序的次数和i的值成正比,性能会非常差。
2.使用sys_connect_by_path
从执行计划上来看,这种方式只需要扫描两次表,比自定义函数的方法,效率要高很多,尤其是表中数据量较大的时候:
3.使用wm_sys.wm_concat
这个函数也可以实现类似的行列转换需求,但是似乎没有办法做到直接根据另外一列排序,所以需要先通过子查询或者临时表排好序:
执行计划上看,只需要做一次表扫描就可以了,但是这个函数是加密过的,执行计划并不能显示函数内部的操作。
Oracle 多行合并一行 方法,布布扣,bubuko.com
标签:使用 strong 数据 io for art re c
原文地址:http://www.cnblogs.com/rongfengliang/p/3867826.html