当前位置: 代码迷 >> Oracle开发 >> 求一高效sql
  详细解决方案

求一高效sql

热度:86   发布时间:2016-04-24 07:20:26.0
求一高效率sql
现有如果情况的数据 一张表有下列数据
X Y Z
1 11 a
1 12 b
1 13 c
3 31 e
3 32 f
注:表中每条数据肯定会有另一与之X相等的数据 即X某一值肯定会出现两次以上

我想查询时查询结果是 (查出所有与X值相同的数据的Y字段并把Y拼接成字符串)
X Y Z
1 12,13 a
1 11,13 b
1 11,12 c
3 32 e
3 31 f

注:表中数据可能上千万,但一般同一X对应Y的值不会超过100个 求大侠指教啊,效率最好高点啊

------解决方案--------------------
SQL code
create table t(X int,  Y int,  Z varchar2(10));insert into t values(1, 11, 'a');insert into t values(1, 12, 'b');insert into t values(1, 13, 'c');insert into t values(1, 1211, 'g');insert into t values(3, 31, 'e');insert into t values(3, 32, 'f');with t1 as (select x, y, z, ','||wm_concat(y) over (partition by x)||',' y1 from t)select x, regexp_replace(regexp_replace(replace(y1, ','||y||',', ','), '^,',''), ',$', '') y,z from t1;---结果--         X Y                    Z---------- -------------------- ----------         1 12,1211,13           a         1 11,1211,13           b         1 11,12,13             g         1 11,12,1211           c         3 31                   f         3 32                   e
------解决方案--------------------
你妹的csdn 我的2楼哪里去了,里面有解决的sql,擦的。。。。。
  相关解决方案