在做一个查询的时候遇到困难,谁能让表中的数据如下z1      z2     z3
--------------------------------------
a        b     c  a        b     daa      bb     ccaa      bb     dd
----------------------------------------查询出来的数据集变成,也就是说字段z1,z2相同的,字段z3合并z1      z2      z3
-----------------------------------------
a       b       c d aa      bb      cc dd-------------------------------------------
或许不可以吧?????????

解决方案 »

  1.   

    如果是在sqlserver 2000中
    create function getstr(@content1 char(20),@content2 char(20)
    returns varchar(2000)
    as 
    begin
    declare @str varchar(2000)
    set @str=''
    select @str=@str+' '+rtrim(z3) from 表 where z1=@content1 and  z2=@content2
    set @str=right(@str,len(@str)-1)
    return @str
    end
    go语句:
    select z1,z2,dbo.getstr(z1,z2) as z3  from 表 group by z1,z2
      

  2.   

    应该可以的!~~~给个思路看 看正确不 ?
    判断 z1,z2相同后,然后 z3 字段追加一个
    也就是:
    adoTable1.fields[2].value :=adoTable1.fields[2].value  +"";
    应该能够行的通~~~~我试试后告诉你答案
      

  3.   

    to firetoucher:
      
    getstr函数我可以在delphi种定义吗
      

  4.   

    加一个distinct关键字就OK了..
    select distinct z1,z2,dbo.getstr(z1,z2) as z3  from 表
      

  5.   

    getstr是你自己在sql server2000中定义的,定义脚本可以在delphi的数据库控件中执行,函数也可以在客户端用sql语句引用,但函数本身并不是delphi,而且sql server2000以前的版本不支持函数.
      

  6.   

    我用的是sql server 7.0,有没有什么别的解决方案呢