表中有标识字段Flag,Flag是一个有业务意义的字符序列例如(00110011),现在要更新字段Flag序列的第三位字符为'1'的所有行替换为‘A’
sql:
update table_name set flag=replace(flag,substr(flag,3,1),'A') where substr(flag,3,1)='A' (错误!)
上面是replace是以substr(flag,3,1)这个字符作为参考,用‘A’替换flag序列中符合的所有字符,不符合需求
应该采用拼接的方式
update table_name set flag=substr (flag,1,3)||‘A’||substr (flag,5,2)