例:表:AA 字段名::QQ
QQ
123
456
789
123
456
789
123
用什么方法显示成
XXX
456
789
XXX
456
789
XXX
只是显示不替换
如果例:表:AA 字段名::QQ
QQ
123
456
789
321
456
789
132
用什么方法显示成
1XX
456
X89
XX1
456
X89
1XX
只是批量把2、3、7换成X显示该怎样写不替换
oracle 在字段中替换某字
答案:2 悬赏:80 手机版
解决时间 2021-02-28 02:18
- 提问者网友:呐年旧曙光
- 2021-02-27 02:19
最佳答案
- 五星知识达人网友:山君与见山
- 2021-02-27 02:26
select decode(to_char(qq), '123', 'xxx', qq) from aa
问题补充:
select replace(to_char(qq), '2', 'x') from aa
只是批量把2、3、7换成X:
select replace(replace(replace(to_char(qq), '2', 'x'), '3', 'x'), '7', 'x') from aa
问题补充:
select replace(to_char(qq), '2', 'x') from aa
只是批量把2、3、7换成X:
select replace(replace(replace(to_char(qq), '2', 'x'), '3', 'x'), '7', 'x') from aa
全部回答
- 1楼网友:酒安江南
- 2021-02-27 03:20
对于这个意思,不知道楼住是想哪一种?
1、不管第一位是什么,直接替换为2;
2、只有当第一位为0的时候,才替换为2;
对于第一种想法的话,可以通过截取字符串,可以用下面的更新语句:
update 表名 set 字段名= '2' || substr(字段名,2) where 字段名 is not null;
(注意:oracle中的第一个字符的位置为1,第二个的位置为2,因此,上面使用substr(字段名,2),而不像java中,使用1)
对于第二种想法,可以使用正则表达来进行处理,或者是采用下面的方法:
update 表名 set 字段名= '2' || substr(字段名,2) where 字段名 is not null and substr(字段名,1,1) = '0';
(经过试验,其中第二种情况下,条件:字段名 is not null 可以省略掉)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯