为什么字符串连接总会出错?

dengwei007 2004-08-15 03:35:42
想把name最后一位是'a'的换成'b'
update [table] set name=left(name,len(name)-1)+replace(right(name,1),'a','b')

为什么总是会有

Incorrect syntax near replace的错误?

...全文
245 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
exingsa 2004-08-15
  • 打赏
  • 举报
回复
UP学习
lxysjl 2004-08-15
  • 打赏
  • 举报
回复
我的没问题,呵
dengwei007 2004-08-15
  • 打赏
  • 举报
回复
好热心啊
谢谢了!
1老玉米1 2004-08-15
  • 打赏
  • 举报
回复
update [table] set name=left(name,len(name)-1)+'b' where name like '%a'
xikboy 2004-08-15
  • 打赏
  • 举报
回复
学习!!
张海霖 2004-08-15
  • 打赏
  • 举报
回复
update [table] set name=left(name,len(name)-1)+'b' where name like '%a'就可以了
或者
set name=left(name,len(name)-1)+replace(convert(varchar,right(rtrim([name]),1)),'a','b')
或者
set name=left(name,len(name)-1)+replace(right([name],1),'a','b')

zhangzs8896 2004-08-15
  • 打赏
  • 举报
回复
今天怎么搞的,回去睡觉了!
---测试
create table [table]([name] varchar(10))
insert [table] values('12345a')
insert [table] values('12345abcd')
insert [table] values('456a ')

select * from [table] ---更新前

update [table]
set name=left(name,len(name)-1)+replace(convert(varchar,right(rtrim([name]),1)),'a','b')

select * from [table] ---更新后

drop table [table]

---结果:
name
----------
12345a
12345abcd
456a

(所影响的行数为 3 行)


(所影响的行数为 3 行)

name
----------
12345b
12345abcd
456b

(所影响的行数为 3 行)

zhangzs8896 2004-08-15
  • 打赏
  • 举报
回复
---测试
create table [table]([name] varchar(10))
insert [table] values('12345a')
insert [table] values('12345abcd')
insert [table] values('456a ')

select * from [table] ---更新前

update [table]
set name=left(name,len(name)-1)+replace(convert(varchar,right(rtrim([name]),1)),'a','b')

select * from [table] ---更新后

drop table [table]

---结果:

name
----------
12345a
12345abcd
456a

(所影响的行数为 3 行)


(所影响的行数为 3 行)

name
----------
12345b
12345abcd
456b

(所影响的行数为 3 行)

name
----------
12345a
12345abcd
456a

(所影响的行数为 3 行)


(所影响的行数为 3 行)

name
----------
12345b
12345abcd
456

(所影响的行数为 3 行)
zhangzs8896 2004-08-15
  • 打赏
  • 举报
回复
晕,拷贝乱套了!
replace(convert(varchar,right(rtrim(name),1)),'a','b')
张海霖 2004-08-15
  • 打赏
  • 举报
回复
你的
update [table] set name=left(name,len(name)-1)+replace(right(name,1),'a','b')
换成
update [table] set name=left(name,len(name)-1)+b
还要加上where name like '%a'
如果按你的思路
update [table] set name=replace(right(name,1),'a','b')
zhangzs8896 2004-08-15
  • 打赏
  • 举报
回复
replace(update [table] set name'a','b')
yesterday2000 2004-08-15
  • 打赏
  • 举报
回复
update [table] set name=left(name,len(name)-1)+'b' where name like '%a'

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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