У меня есть столбец как тип данных varchar2, данные в нем в формате:

100323.3819823.222
100.323123.443422
1001010100.233888
LOL12333.DDD33.44

Мне нужно удалить всю часть после первого появления '.'

В конце это должно выглядеть так:

100323
100
1001010100
LOL12333

Я не могу найти точное выражение подстроки из-за того, что нет никакой фиксированной длины первой части.

0
Lorik Berisha 28 Май 2019 в 16:10

2 ответа

Лучший ответ

Одним из способов является использование REGEXP_SUBSTR:

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

Другой способ - объединить SUBSTR с INSTR, что немного быстрее, но приведет к NULL, если данные не содержат точку, поэтому вам придется добавить переключатель при необходимости:

SELECT SUBSTR(column_name, 1, INSTR(column_name,'.') - 1) FROM table
4
Radagast81 28 Май 2019 в 14:02

Для оракула вы можете попробовать это:

select substr (i,1,Instr(i,'.',i)-1) from Table name.
1
hotfix 28 Май 2019 в 13:27