2009-11-10 159 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