SQLSqlserver中如何将一列数据拼接成一个字符串

来源:未知 责任编辑:责任编辑 发表时间:2013-12-22 14:56 点击:

创建表值函数:
 
[sql] 
create function [dbo].[GetAssessmentCity](  
@ryear varchar(4), --年份  
@rmonth varchar(2)  --月份  
) returns @GetCity TABLE(id varchar(20),city varchar(20))  
as   
begin  
    declare @result varchar(1200) --返回结果  
    insert into @GetCity   
    select 1,a.AssessmentCity from T_COD_SectionInfo a   
    right join MonthTargetData b on a.section_id=b.section_id   
    where (report_year = @ryear   www.2cto.com   
           and report_month = @rmonth)  
           and (value61 = 1  
            or value62 = 1)  
   return  
end  
SQL语句:
 
[sql] 
SELECT b.id,LEFT(cityList,LEN(cityList)-1) city FROM (  
    SELECT  id, (SELECT city+'、' FROM dbo.GetAssessmentCity('2012','01') WHERE id=a.id FOR XML PATH(''))   
    AS cityList FROM dbo.GetAssessmentCity('2012','01') a group by id) b  
 
简单示例:
 
[sql] 
declare @T Table(Id numeric(18), Code varchar(10))  
insert into @T(id,code)  
select 1, 'zhang'  
union all  
select 1, 'yan'  
union all  
select 2, 'zdw'  
union all  
select 2, 'ydj';  
  www.2cto.com  
SELECT B.id,LEFT(UserList,LEN(UserList)-1) code FROM (  
SELECT id,(SELECT code+',' FROM @T WHERE id=A.id FOR XML PATH('')) AS UserList FROM @T A GROUP BY id  
) B  
 
 
 
 
摘自 朱金拖的专栏
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • sql常见面试题
    • SQL SERVER 2005性能之跟踪
    • SQL编程(一)
    • LINUX上RMAN自动备份脚本
    • sql server面试题
    • 如何将多个SQL查询统计结果一次显示出来
    • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
    • sql server 列转行
    • SQL小技巧系列 --- 行转列合并
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1