sunsunzhang 发表于 2010-02-23 14:56

有人知道怎么实现下面的SQL吗?(DB2环境下)

本帖最后由 sunsunzhang 于 2010-02-23 14:58 编辑

知识id   行为名称
1         *
1      &&
2         %
2      ##

需要输出为:
1   *&&
2   %##

renxiao2003 发表于 2010-02-23 20:31

select a.知识id, a.行为名称 +b.行为名称
from tbl a,tbl b
where a.知识id = b.知识id
and a.rownum <> b.rownum

weiruan85 发表于 2010-03-01 10:32

--    create table recursion
--    (
--       id int ,
--           action varchar(100)
--    );
--
-- delete from recursion ;
--    insert into recursion values(1,'a');
--    insert into recursion values(1,'b');
--    insert into recursion values(2,'c');
--    insert into recursion values(2,'d');
   
--    insert into recursion values(1,'e');
--    insert into recursion values(2,'f');


   with x(id,action,t1,t2) as
   (
          select id,action ,t1,t2 from(select id ,action ,rownumber()over(partition by id) t1 ,rownumber()over(partition by id) t2 fromrecursion ) a   
          where t1=1 and t2=1
          union all
          select x.id,x.action||'-'||b.action,x.t1+1,x.t2
          from   x , (select id ,action ,rownumber()over(partition by id) t1 ,rownumber()over(partition by id) t2 fromrecursion ) bwhere b.id=x.id   and x.t1=b.t2-1
    )
        select*from xwhere t1=3;


where t1=3; 这块的3可以搞个子查询。你自己写吧
页: [1]
查看完整版本: 有人知道怎么实现下面的SQL吗?(DB2环境下)