博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SqlServer 多行字段值字符串连接
阅读量:7232 次
发布时间:2019-06-29

本文共 1367 字,大约阅读时间需要 4 分钟。

例:   

      id                 txt   
        1                   aaa   
        1                   bbb   
        2                   ccc   
        3                   ddd   
        3                   eee   
        3                   fff   
    
    
  select   id,***(txt,';')   from   tb   group   by   id   
  结果:   
        1         aaa;bbb   
        2         ccc   
        3         ddd;eee;fff   

方法----------------------------------------------------------------

  create   table   tb(id   int,txt   varchar(100))   
  go   
  insert   into   tb   
  select   1,'aaa'   union   all   
  select   1,'bbb'   union   all   
  select   2,'ccc'   union   all   
  select   3,'ddd'   union   all   
  select   3,'eee'   union   all   
  select   3,'fff'   
    
  go   
  --写一个聚合函数:   
  create   function   dbo.fn_Merge(@id   int)   
  returns   varchar(8000)   
  as   
  begin   
        declare   @r   varchar(8000)   
        set   @r=''   
        select   @r=@r+';'+txt   from   tb   where   id=@id   
        return   stuff(@r,1,1,'')   
  end   
  go   
    
  --   调用函数   
  select   id,   dbo.fn_Merge(id)   as   txt   from   tb   group   by   id   
        
  go   
  drop   table   tb   
  drop   function   fn_Merge 

 

 

------------STUFF函数--------------

STUFF删除指定长度的字符并在指定的起始点插入另一组字符。

语法 STUFF ( character_expression , start , length , character_expression ) 参数 character_expression由字符数据组成的表达式。character_expression 可以是常量、变量,也可以是字符或二进制数据的列。

start 是一个整形值,指定删除和插入的开始位置。如果 start 或 length 是负数,则返回空字符串。如果 start 比第一个 character_expression 长,则返回空字符串。

 length 是一个整数,指定要删除的字符数。如果 length 比第一个 character_expression 长,则最多删除到最后一个 character_expression 中的最后一个字符。返回类型如果 character_expression 是一个支持的字符数据类型,则返回字符数据。如果 character_expression 是一个支持的 binary 数据类型,则返回二进制数据。

注释可以嵌套字符串函数。

示例下例

通过在第一个字符串 (abcdef) 中删除从第二个位置(字符 b)开始的三个字符,然后在删除的起始位置插入第二个字符串,创建并返回一个字符串。

SELECT STUFF('abcdef', 2, 3, 'ijklmn')

GO下面是结果集:--------- aijklmnef

转载地址:http://oapfm.baihongyu.com/

你可能感兴趣的文章
词性标注
查看>>
LeetCode - Decode Ways
查看>>
C基础之递归(思想很重要,学会找规律)
查看>>
Android应用公布的准备——渠道注冊与认证
查看>>
【软考】(三)多媒体
查看>>
变频器直流母线电路示意图(转载)
查看>>
atitit.跨语言执行cmd cli api的原理及兼容性设计草案
查看>>
第四章 类加载机制
查看>>
Windows 7下可以使用的各个命令语句+C#打开
查看>>
linux下停止tomcat
查看>>
IOS UI-控制器的创建和控制器的View的创建
查看>>
2014/4月金山WPS笔试
查看>>
android: ADB错误“more than one device and emulator”
查看>>
作为一个测试leader平时应该注意哪些方面
查看>>
字符和字符串
查看>>
Notice: Only variable references should be returned by reference(PHP版本兼容性问题)
查看>>
Windows 之 win10快捷键
查看>>
Entity Framework 并发处理
查看>>
使用Xamarin.Forms平台开发移动应用指南
查看>>
Oracle使用小记
查看>>