我运行如下的语句后,怎么好像有问题啊
select stuff(安全,2,3,5) FROM ABC得到的是:
0500000000
05000
0500000000000000
05000000000不是应该得到的是 
0555000000
05550
0555000000000000
05550000000难道我哪里写错了??

解决方案 »

  1.   

    select stuff(安全,2,3,'555') FROM ABC
      

  2.   

    select stuff(安全,2,3,5) FROM ABCstuff的用法:
    STUFF ( character_expression , start , length ,character_expression )
     character_expression    一个字符数据表达式。character_expression 可以是常量、变量,也可以是字符列或二进制数据列。start    一个整数值,指定删除和插入的开始位置。如果 start 或 length 为负,则返回空字符串。如果 start 比第一个 character_expression 长,则返回空字符串。start 可以是 bigint 类型。length    一个整数,指定要删除的字符数。如果 length 比第一个 character_expression 长,则最多删除到最后一个 character_expression 中的最后一个字符。length 可以是 bigint 类型。
      

  3.   

    create table #T
    (
      v varchar(50)
    )
    insert into #T select '0500000000'
    union all select '0500000000000000'
    union all select '05000'
    union all select '05000000000'select stuff(v,2,3,'555') FROM #T
    --------------------------------------------------
    0555000000
    0555000000000000
    05550
    05550000000(4 行受影响)