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
这个语句就会通过函数调用达到你想要的结果了