#sql #oracle
#sql #Oracle
Вопрос:
У меня есть sql, который возвращает пример строки ниже:
Ввод PKIND:BCMOX:10048301-
вывод BCMOX:10048301
Мне нужно написать код первой подстроки строки -
, затем разделить ее :
и вернуть 2 amp; 3 item ( BCMOX:10048301
)
Ответ №1:
Если формат строки согласован и вы хотите извлечь все после первого :
до первого вхождения -
, используйте комбинацию substr
и instr
.
select substr(col, instr(col,':') 1, instr(col,'-')-instr(col,':')-1)
from yourtable
where instr(col,':') > 0 and instr(col,'-') > 0 --to get the rows which have these 2 characters
Ответ №2:
Версия REGEXP_SUBSTR. Верните все, что находится между первым двоеточием и первым дефисом.
select regexp_substr('PKIND:BCMOX:10048301-', ':(.*)-', 1, 1, NULL, 1) from dual;