PLSQL中实现修改表里数据第一位后拼接截取的数据

在工作中遇到的修改一批数据的问题,不需要更改库里的数据,只要将符合要求的数据显示出来即可,主要是表里的数据量很大,不适合手动修改,而且要修改的数字不具有唯一性。
问题描述:

将20位的00000000000000080492改成Z0000000000000080492,00000000000000080492字段为varchar(20)类型的serialno。

解决办法:
PLSQL中:


select  concat('Z',substrB(to_char(a.serialno),2,19))   from  表名  where ...

注意:

  1. 将varchar转换为字符型,用 to_char(变量)即可。
  2. 拼接字符串用concat(string1,string2,…)函数,只要其中一个是NULL,那么结果将返回NULL

如果是将数据将Z0000000000000080492改成00000000000000080492,那就方法太多了。

  1. 比如将库里那个表一列数据全部拉取出来放到编辑器如notepad++,使用替换功能将‘Z’换成‘0’即可;
  2. 也可以使用SQL语句。类似的修改一下SQL也挺快的。
select  concat('0',substrB(to_char(a.serialno),2,19))   from  表名  where ...

这样显示得到的数据可以直接拿出来放到excel里面,你想对他干嘛就可以干嘛,很省时间。

掌握该语句,想修改第几位 的数据就怎么修改。虽然写的这语句不是最好的,可是很简单实用

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值