从句子中删除单个字符

时间:2012-12-12 04:22:07

标签: sql plsql oracle11g

我有以下表格和数据:

  • 1)我只想显示句子的最后部分。
  • 2)从句子末尾删除任何单个字符。
  • 3)删除和特殊的字符串,如#,?,_从单词的结尾
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

2 个答案:

答案 0 :(得分: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

将在两种情况下返回{id}:UK

不要忘记用好的列名替换'hello UK':)

HERE是与INSTR一起使用的SUBSTR的解释

祝你好运:)

答案 1 :(得分:0)

阅读您的数据库手册,它们都具有执行字符串操作的功能,并且它们都依赖于应用程序的语法。 SUBSTRING(words, 7, DATALENGTH(word) -7)可以在SQL Server中使用。