2017-05-25 89 views
-1

我在Oracle中的數據庫表中有一列具有前導空格和尾隨空格的值。我希望前導空格替換爲'P',尾隨空格替換爲'T',僅使用內聯查詢替換前導空間和尾隨空格Oracle

+1

請張貼一些樣本數據和期望的結果。另外,你到目前爲止嘗試過什麼? – Aleksej

回答

0

如果你想與同等數量的P/T s到取代各領/培訓空間,那麼你可以使用:

SELECT REPLACE(REGEXP_SUBSTR(your_column, '^ +'), ' ', 'P') 
     || TRIM(BOTH FROM your_column) 
     || REPLACE(REGEXP_SUBSTR(your_column, ' +$'), ' ', 'T') 
FROM your_table 

如果你想用一個單一P/T然後更換空間:

SELECT REGEXP_REPLACE(
     REGEXP_REPLACE(your_column, '(.*?) +$', '\1T'), 
     '^ +(.*)', 
     'P\1' 
     ) 
FROM your_table 
0

既然你沒有指定,如果您的前端和後端空間的量都是恆定的長度,這樣的事情也可以使用,只有當他們是:

select replace(substr(' hello world ',1, instr(' hello world ',' ',1,2)),' ','P')|| 
     trim(' hello world ')|| 
     replace(substr(' hello world ', instr(' hello world ',' ',-1,2), length(' hello world ')),' ','T') 
from dual; 

需要注意的是,在所有的查詢中的INSTR功能的數字「2」,將代表前/後間隔的常數,所以你應該改變,以滿足您的需要。

相關問題