您的位置:首页 > 数据库

实际项目中遇到的问题之SQL根据某一字段值相同合并字符串

2008-04-02 16:25 369 查看
最近在做调查问卷系统,在最后做问卷调查统计报表时遇到了个问题。经过几个小时实践,尽于得到完美解决。现将方法记录下来与大家共享,希望大家以后在工作中遇到相同问题有个参考。看问题如下:

经过几个表的拼合汇总得到如下表(下面称做“原始表”):

lngQuestionIDstrCatalogTitle strQuestionTitle Results
1分类一问题一不满意0份
1分类一问题一满意1份
1分类一问题一一般1份
2分类二问题二满意1份
2分类二问题二不满意1份
想要的结果表如下:


lngQuestionIDstrCatalogTitle strQuestionTitle AllResults
1分类一问题一不满意0份,满意1份,一般1份
2分类二问题二不满意0份,满意1份
我用的是自定义函数的方法(应该还有别的方法),自定义函数如下: /*

功能:合并处理函数

作者:iawsky

时间:2008-03-27

使用:调查问卷高级汇总报表用

*/

ALTER FUNCTION [dbo].[fun_GetReults](@ReultColum varchar(10))

RETURNS varchar(500)

AS

BEGIN

DECLARE @ varcharReults varchar(500)

SET @varcharReults =''

SELECT @ varcharReults =@ varcharReults +','+CAST(Results as varchar)

FROM

原始表

WHERE lngQuestionID=@ReultColum

RETURN(STUFF(@varcharReults,1,1,''))

END

调用方法:

SELECT lngQuestionID,strCatalogTitle,strQuestionTitle,AllResults=dbo. fun_ GetReults (lngQuestionID) FROM

原始表

GROUP BY lngQuestionID,strCatalogTitle,strQuestionTitle

得到的就是上面要的结果表.

转载请注明出处:http://www.web2bar.cn/Article/2200.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: