2014-02-18 44 views
0

比方說我的表像,如何僅使用Sql拆分列?

data 
    ---- 
    smith700 

那麼我的輸出應該是

name sal 
    ----- --- 
    smith 700 

我只能用SQL語句沒有PL/SQL語句被允許......怎麼辦呢?

+1

什麼是分裂的標準是什麼? 'name'中的前5個字符,剩下'sal'? – Barmar

+0

你有嘗試過什麼嗎? – bhs

+2

使用'REGEXP_SUBSTR' - 通過這種方式,您可以只用字母拆分項目和以數字開頭的項目 –

回答

1

使用SubStr

SELECT SUBSTR('smith700',1,5),SUBSTR('smith700',6,3) 

UPDATE

對於不同的數字和字符的長度,你可以嘗試

SELECT REGEXP_REPLACE('smith700', '[A-Za-z]','') FROM DUAL; 
SELECT REGEXP_REPLACE('smith700', '[0-9]') FROM DUAL; 
+0

你可以做到,但如果我有不同的名稱和薪水(名稱的長度不同)的多行,那麼該怎麼辦? – user3324373

+0

@ user3324373更新回答 – AbstractChaos

+0

但regexp_replace可能會導致一些其他問題我們是否有其他一些過程呢...... – user3324373

-1
select substr(data,1,5) name, substr(data,6,3) sal from your_tab;