1

我有下表和数据:

  • 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
4

2 回答 2

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' :)

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

祝你好运 :)

于 2012-12-12T04:27:24.797 回答
0

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

于 2012-12-12T04:28:16.650 回答