create table TB_a(COL_b varchar2(6));
insert into tb_a values('100002');
insert into tb_a values('100013');
insert into tb_a values('100014');select substr(col_b,0,3)||lpad(to_char(to_number(substr(col_b,4,3))*2),3,'0') from tb_a;
解决方案 »
- 从表2中取查出的第二条记录更新表1字段
- ORACLE11安装错误,请大伙告诉我是那里出错了?
- 请教一条sql语句
- Oracle知识整理__第三章 常用系统存储过程
- sybase 314个字段,3亿数据 导入到 Oracle(寻真经!)
- oracle 性能比较,谁快谁慢?
- asp连接oracle报错rosoft OLE DB Provider for ODBC Drivers (0x80004005)问题求助!
- 请教各位大侠们一个SQL
- 请问各位高手,我想建所一个表里的主健的项目是那些,如何通过sql实现?
- oracle近亿级数据表如何提高查询速度
- ORACLE用PLSQL导入表,会导入错误的系统表
- 有两张表有部分相同字段,求联合查询语句效果?
select t.col_b,
to_number(substr(to_char(t.col_b), 1, 3)) * 100 +
to_number(substr(to_char(t.col_b), 4, 3)) * 2
from tb_a t--当然 此sql建立在你固定6位基础上
to_number(substr(to_char(t.col_b), 1, 3)) * 1000 +
to_number(substr(to_char(t.col_b), 4, 3)) * 2
from tb_a t
update TB_a set col_b = col_b+to_number(substr(to_char(col_b),4,3)) ;
扩展下,如果想改变为后三位的n倍:
update TB_a set col_b = col_b+to_number(substr(to_char(col_b),4,3))*(n-1) ;
select col_b+to_number(substr(to_char(col_b),4,3)) col_b from TB_a;