У меня есть столбец как тип данных varchar2, данные в нем в формате:
100323.3819823.222
100.323123.443422
1001010100.233888
LOL12333.DDD33.44
Мне нужно удалить всю часть после первого появления '.'
В итоге это должно выглядеть так:
100323
100
1001010100
LOL12333
Я не могу найти точное выражение подстроки из-за того, что нет никакой фиксированной длины первой части.
2 ответа
Одним из способов является использование REGEXP_SUBSTR
:
SELECT REGEXP_SUBSTR(column_name,'^[^.]*') FROM table
Другой способ - объединить SUBSTR
с INSTR
, что немного быстрее, но приведет к NULL
, если данные не содержат точку, поэтому вам придется добавить переключатель при необходимости:
SELECT SUBSTR(column_name, 1, INSTR(column_name,'.') - 1) FROM table
Для оракула вы можете попробовать это:
select substr (i,1,Instr(i,'.',i)-1) from Table name.
Похожие вопросы
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.