SQL

sql 语句中group by 不能将字符类型的字段值进行累计,有何办法?
如: TB1
AA   XX
---  -----
DF    K
DF    J
DF    P
GH    K
LK    O
...能否用SQL语句直接如下表:
aa    xx
---   ---------------
df    k,j,p(曾经有二位老师用SQL自定义函数邦我解决了,我却看不懂这个函数,只能囫囵吞枣)

解决方案 »

  1.   


    CREATE FUNCTION FN_MERGER(@FIELD VARCHAR(100))
            RETURNS VARCHAR(8000)
    AS
    BEGIN
            DECLARE @NAME VARCHAR(8000)
            SET @NAME=''
            SELECT @NAME=@NAME+','+XX FROM TEST WHERE AA=@FIELD
            RETURN STUFF(@NAME,1,1,'')
    END
    GOSELECT DISTINCT AA,DBO.FN_MERGER(AA) FROM TEST
      

  2.   

    楼上正解,写的也很工整啊
    首先建一个函数
    然后只要写了
    SELECT DISTINCT AA,DBO.FN_MERGER(AA) FROM TEST 
    这个语句就会通过函数调用达到你想要的结果了