我有一列为varchar2数据类型,其中的数据格式为:
100323.3819823.222
100.323123.443422
1001010100.233888
LOL12333.DDD33.44
我需要在第一次出现“。”之后删除整个部分。
最后它应该看起来像这样:
100323
100
1001010100
LOL12333
由于第一部分没有固定长度,我似乎找不到确切的子字符串表达式。
答案 0 :(得分:4)
一种方法是使用REGEXP_SUBSTR
:
SELECT REGEXP_SUBSTR(column_name,'^[^.]*') FROM table
另一种方法是将SUBSTR
与INSTR
组合在一起,这会更快一些,但是如果数据中不包含点,则会导致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.