Chinaunix

标题: 急急急救急:求求informix下怎样实现多行合并的问题? [打印本页]

作者: xvm03    时间: 2008-06-23 10:10
标题: 急急急救急:求求informix下怎样实现多行合并的问题?
create table T(a int, b nvarchar(10), c char(5));

insert into T values(1,'A','我');
insert into T values(1,'A','我1');
insert into T values(2,'B','你0');
insert into T values(2,'B','你1');
insert into T values(2,'B','你2');
insert into T values(2,'B','你3');
insert into T values(3,'C','他7');
insert into T values(3,'C','他4');
insert into T values(3,'C','他5');
insert into T values(3,'C','他6');
合并如下结果:
1,A,我我1
2,B,你0你1你2你3
3,C,他4他5他6他7
作者: czw1413_cn    时间: 2008-06-23 17:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: ivhb    时间: 2008-06-23 19:48
原帖由 xvm03 于 2008-6-23 10:10 发表
create table T(a int, b nvarchar(10), c char(5));

insert into T values(1,'A','我');
insert into T values(1,'A','我1');
insert into T values(2,'B','你0');
insert into T values(2,'B','你1');
...


正确的解决办法是开发一个用户自定义的聚合函数。
作者: liaosnet    时间: 2008-06-23 22:29
楼上的两位不要偷懒撒~~随便写个出来示例下~~
作者: wenlq    时间: 2008-06-24 08:10
闲着也是闲着 写了个
(expression) (expression) (expression)

           1 A            我我1
           2 B            你0你1你2你3
           3 C            他4他5他6他7

--drop procedure jt;
create procedure jt( ) returning int,char(10),char(50);

        define va like t.a;
        define vb like t.b;
        define vc like t.c;

        define ta like t.a;
        define tb like t.b;

        define first int;
        define tc varchar(255);

        let first=1;
        let tc="";
        foreach select * into va,vb,vc from t
        order by 1,2,3
         if ( first == 1) then
                let ta=va;
                let tb=vb;
                let first = 0;
         end if
         if ( ta!=va or tb!=vb )
         then
                return ta,tb,tc with resume;
                let tc= "";
                let ta=va;
                let tb=vb;
         end if
         let tc=trim(tc)||vc;
        end foreach;
        return ta,tb,tc ;
end procedure;
作者: flance    时间: 2008-06-25 18:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: ivhb    时间: 2008-06-26 02:22
又一个喜欢批阅的




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2