• sql的STUFF()函数


    1、作用

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

    2、语法

    STUFF ( character_expression , start , length ,character_expression )
    select stuff(列名,开始位置,长度,替代字符串)

    3、示例

    以下示例在第一个字符串 abcdef 中删除从第 2 个位置(字符 b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串

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

    下面是结果集

    aijklmnef

    4、参数
    character_expression

    一个字符数据表达式。character_expression 可以是常量、变量,也可以是字符列或二进制数据列。

    start

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

    length

    一个整数,指定要删除的字符数。如果 length 比第一个 character_expression长,则最多删除到最后一个 character_expression 中的最后一个字符。length 可以是 bigint 类型。

    5、返回类型
    如果 character_expression 是受支持的字符数据类型,则返回字符数据。如果 character_expression 是一个受支持的 binary 数据类型,则返回二进制数据。

    6、备注
    如果结果值大于返回类型支持的最大值,则产生错误。

    同时,stuff也可用于行列转换

     转换后
    SELECT  STUFF(( SELECT  ',' +CONVERT(nvarchar(50), pId)
                    FROM    uc_Program where userType=2
                  FOR
                    XML PATH('')
                  ), 1, 1, '') AS Name

    原文:https://www.cnblogs.com/345563452/archive/2009/10/29/1592048.html

       http://blog.sina.com.cn/s/blog_5f0493880100ttpp.html

    提醒:行列转换方法为 pivot与unpivot

  • 相关阅读:
    BZOJ1070[SCOI2007]修车
    BZOJ1061[Noi2008] 志愿者招募
    BZOJ 3511 土地划分
    BZOJ3130 [Sdoi2013]费用流
    POJ1797 Heavy Transportation
    P2866 糟糕的一天
    P1155 双栈排序
    P1027 car的旅行路线
    POJ3037 Skiing
    POJ1125 Stockbroker Grapevine
  • 原文地址:https://www.cnblogs.com/Cein/p/8145488.html
Copyright © 2020-2023  润新知