2015-06-08 91 views
1

如何拆分沒有空格或任何其他分隔符的列值。我搜索了論壇,但無法找到解決方案。如何拆分Oracle中的列值sql

這裏是我的方案

ID Column_Value 
011 abcdefgh

結果應該是

Column_Value1 Column_Value2 
abcd    efgh
+3

什麼是分裂的條件? –

+0

如果你沒有分隔符,你需要在什麼基礎上拆分它? [根據此](https://docs.oracle.com/cd/E17952_01/refman-5.1-zh/string-functions.html),您可以使用基於長度的左側和右側功能。 –

+0

SUBSTRING也許? – jarlh

回答

3

假設你只是想拆了下來,中間一欄,你可以組合實現這一目標substr and length

SELECT SUBSTR(column_value, 1, LENGTH(column_value)/2), 
     SUBSTR(column_value, LENGTH(column_value)/2 + 1) 
FROM mytable 

SQLFiddle

+0

非常感謝,它的工作原理... – Mano

2

如果要拆分基於長度和字符數的字符串,然後使用SUBSTR如下:

SQL> with data(str) as(
    2 select 'abcdefgh' from dual 
    3 ) 
    4 select substr(str, 1, 4) col1, 
    5   substr(str, length(substr(str, 1, 4)) +1) col2 
    6 from data; 

COL1 COL2 
---- ---- 
abcd efgh 

SQL> 

上面,你可以的4值更改爲你想要的價值。請記住,兩者不是相互排斥的。