这个语句哪里出错了

luliangpin 2010-09-26 06:10:52
我运行如下的语句后,怎么好像有问题啊
select stuff(安全,2,3,5) FROM ABC

得到的是:
0500000000
05000
0500000000000000
05000000000

不是应该得到的是
0555000000
05550
0555000000000000
05550000000

难道我哪里写错了??
...全文
45 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2010-09-26
  • 打赏
  • 举报
回复
插入的字符character_expression
ws_hgo 2010-09-26
  • 打赏
  • 举报
回复
你理解错啦
ws_hgo 2010-09-26
  • 打赏
  • 举报
回复
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 行受影响)
王向飞 2010-09-26
  • 打赏
  • 举报
回复
是把‘安全’换成3个5吗?要是参考楼上 。不是的话,给出你的表数据。
「已注销」 2010-09-26
  • 打赏
  • 举报
回复
select stuff(安全,2,3,5) FROM ABC

stuff的用法:
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 类型。
王向飞 2010-09-26
  • 打赏
  • 举报
回复
select stuff(安全,2,3,'555') FROM ABC

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧