2012-12-12 25 views
1

刪除單個字符我有以下表和數據:從句子

  • 1)我想只顯示句子的最後一部分。
  • 2)從句尾刪除任何單個字符。
  • 3)刪除和特殊charachter一樣 - 從詞的末尾,#,_
create table t1 (id number(9) , words varchar2(20)); 
insert into t1 values(1,'hello UK'); 
insert into t1 values(2,'hello Eypt'); 
insert into t1 values(3,'hello ALL'); 
insert into t1 values(4,'hello I'); 
insert into t1 values(5,'hello USA'); 
insert into t1 values(6,'hello #'); 
insert into t1 values(7,'hello #'); 
insert into t1 values(8,'hello A'); 
insert into t1 values(9,'hello 20'); 
insert into t1 values(10,'hello 2-2-2010'); 

我已經使用這個

select REGEXP_SUBSTR(words,'\S+$)from t1; 

預期結果

id word 
1  UK 
2 EGYPT 
3  ALL 
5 USA 
9  20 
10 2-2-2010 
+0

請注意有用的答案,我們喜歡rep points! – marctrem

回答

0

MySQL版本

SELECT id, SUBSTRING_INDEX('hello UK', ' ', -1) as word WHERE LENGHT(word) > 1 

OracleDB的版本(你必須使用一個)

SELECT id, SUBSTR('hello UK', INSTR('hello UK', ' ')) as word WHERE LENGHT(word) > 1 

會在兩種情況下返回(編號):英國

不要忘記更換'你好英國'與好的專欄名稱:)

HERE是解釋f或SUBSTR使用INSTR

祝你好運:)

+0

如何從句子末尾或特殊字符中刪除單個字符 –

+0

這就是'WHERE LENGHT(word)> 1'的用途!任何不大於1的字符串將不會返回(因爲您在預期的結果中顯示) – marctrem

+0

的確,我們刪除只有一個或更少字符的結果,而不是字符本身:) – marctrem

0

讀取數據庫手冊,它們都有做字符串操作功能,它們都依賴於他們的語法應用。 SUBSTRING(words, 7, DATALENGTH(word) -7)可以在SQL Server中工作。

+0

確定如何刪除從句尾的#這樣的字符 –