特定事件的子串

时间:2019-05-28 13:10:05

标签: sql oracle substr

我有一列为varchar2数据类型,其中的数据格式为:

100323.3819823.222
100.323123.443422
1001010100.233888
LOL12333.DDD33.44

我需要在第一次出现“。”之后删除整个部分。

最后它应该看起来像这样:

100323
100
1001010100
LOL12333

由于第一部分没有固定长度,我似乎找不到确切的子字符串表达式。

2 个答案:

答案 0 :(得分:4)

一种方法是使用REGEXP_SUBSTR

SELECT REGEXP_SUBSTR(column_name,'^[^.]*') FROM table

另一种方法是将SUBSTRINSTR组合在一起,这会更快一些,但是如果数据中不包含点,则会导致NULL,因此您将如果需要,必须添加一个开关:

SELECT SUBSTR(column_name, 1, INSTR(column_name,'.') - 1) FROM table

答案 1 :(得分:1)

对于oracle,您可以尝试以下操作:

select substr (i,1,Instr(i,'.',i)-1) from Table name.