2009-11-10 95 views
0

我正在使用Oracle 10g。我的表的一列中存储了一些数据,如下面所示。将数据拆分为一列,并使用拆分数据更新新列

 
1722999340KK000200000 

1444210829AB1001EX003 

1444300000CD0148EX003 

1722999340KL000200000 

我想在数字的比率有关的数据分割(4; 6; 6; 5)如下所示,并将其存储在不同的列

 
(A1 || A2 || A 3 || A4) 

1444 || 210829 || AB1001 || EX003 

感激,如果有人可以给我一些关于如何实现相同的指针。

回答

3

对于甲骨文,我不是专家,但让我们试试看。假设原来的列名为ORIG,和原来的数据是一些字符串类型:

update <tablename> set A1 = substr(ORIG, 0, 4), 
         A2 = substr(ORIG, 4, 6), 
         A3 = substr(ORIG, 10, 6), 
         A4 = substr(ORIG, 16, 5); 

希望这有助于

汤姆

+0

SUBSTR函数肯定是实现最简单的方法。 – kdmurray 2009-11-10 08:20:11

+0

谢谢汤姆。几乎是正确的。必须对数字位置进行小的修改。 (tempcol,4,6), C3 = substr(tempcol,10,6), C4 = substr(tempcol,16,5)更新temptab组C1 = substr(tempcol,0,4), C2 = substr ; 再次感谢! – novice 2009-11-10 08:43:30

+0

不客气。但是,我看不到你的数字在哪里不同... – 2009-11-10 08:47:42