关于SQL语言用到变量的问题,哪位大侠帮忙给瞧瞧!

来源:百度知道 编辑:UC知道 时间:2024/06/01 01:03:13
例:假如数据库中有表A,表A的B_name栏位有序列号“ACBDHHH”1000笔数据。
ACBDHHH代表ACBD000到ACBD999的序列号,“HHH”是十进制。
怎样基于以下的SQL语言实现将这1000笔数据中的“CB”改为“BC”
update A
set
B_name='ABCDHHH'
Where B_name='ACBDHHH'
小弟是初学者,以前没接触过SQL语言,感觉这个要用到变量但不知道怎么加,请那位大侠帮帮忙给写个SQL并指点一二不胜感激!

不改后面的4位的话确实如4楼所说,用个REPLACE函数就好吧。。

如果你的 B_name列的1000条记录序列号都是ACBHHH的话,下面的是没问题的
update A
set
B_name='ABCDHHH'
Where B_name='ACBDHHH'

整体思路是利用sql的字符串处理函数SUBSTRING 和 连接操作来进行更新,由于各个数据库的连接操作不同,分别列出.
MySQL:
update A set B_name = concat('ABCD',SUBSTRING(B_name,5,3) )
where B_name like 'ACBD%'

SQL Server:
update A set B_name = 'ABCD'+SUBSTRING(B_name,5,3)
where B_name like 'ACBD%'

Oracle,DB2:
update A set B_name = 'ABCD'||SUBSTRING(B_name,5,3)
where B_name like 'ACBD%'

update A set B_name=replace(B_name,'CB' ,'BC')