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里面,你想对他干嘛就可以干嘛,很省时间。

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

猜你喜欢

转载自blog.csdn.net/qq_37887131/article/details/86543942