读书人

SQL,该如何解决

发布时间: 2012-01-28 22:06:14 作者: rapoo

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自定义函数邦我解决了,我却看不懂这个函数,只能囫囵吞枣)

[解决办法]
不知道会有多少的,需要用递归的思想,
[解决办法]

SQL code
CREATE FUNCTION FN_MERGER(@FIELD VARCHAR(100))        RETURNS VARCHAR(8000)ASBEGIN        DECLARE @NAME VARCHAR(8000)        SET @NAME=''        SELECT @NAME=@NAME+','+XX FROM TEST WHERE AA=@FIELD        RETURN STUFF(@NAME,1,1,'')ENDGOSELECT DISTINCT AA,DBO.FN_MERGER(AA) FROM TEST
[解决办法]
楼上正解,写的也很工整啊
首先建一个函数
然后只要写了
SELECT DISTINCT AA,DBO.FN_MERGER(AA) FROM TEST
这个语句就会通过函数调用达到你想要的结果了

读书人网 >VB

热点推荐