Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Прощу помочь отрезать часть текста.  [new]
proxy_911
Member

Откуда:
Сообщений: 216
Добрый день коллеги,

Прощу помочь отрезать часть следующего текста , которые выделена с жирным красным цветом. и объединить их.. т.е 10053

1005_TEST-LTE/Cell:eNodeB Function Name=1005_TEST-LTE, Local Cell ID=3, Cell Name=XMINTRA4, eNodeB ID=1005, Cell FDD TDD indication=CELL_FDD

Не подскажите как это реализовать на уровне запроса ?

Заранее спасибо!
21 июн 17, 14:02    [20580565]     Ответить | Цитировать Сообщить модератору
 Re: Прощу помочь отрезать часть текста.  [new]
Q.Tarantino
Member [заблокирован]

Откуда: Где-то рядом...
Сообщений: 12015
regexp
21 июн 17, 14:09    [20580608]     Ответить | Цитировать Сообщить модератору
 Re: Прощу помочь отрезать часть текста.  [new]
MaximaXXL
Member

Откуда: Киев
Сообщений: 652
proxy_911,

substr + instr
21 июн 17, 14:12    [20580621]     Ответить | Цитировать Сообщить модератору
 Re: Прощу помочь отрезать часть текста.  [new]
Dshedoo
Member

Откуда:
Сообщений: 393
proxy_911,

with q as (select '1005_TEST-LTE/Cell:eNodeB Function Name=1005_TEST-LTE, Local Cell ID=3, Cell Name=XMINTRA4, eNodeB ID=1005, Cell FDD TDD indication=CELL_FDD' as a from dual)
select substr(a,1,instr(a,'_')-1)||substr(a,instr(a,'Local Cell ID=')+length('Local Cell ID='),instr(substr(a,instr(a,'Local Cell ID=')+length('Local Cell ID=')),',')-1) from q
21 июн 17, 14:14    [20580642]     Ответить | Цитировать Сообщить модератору
 Re: Прощу помочь отрезать часть текста.  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
Q.Tarantino,

with t as (select '1005_TEST-LTE/Cell:eNodeB Function Name=1005_TEST-LTE, Local Cell ID=3, Cell Name=XMINTRA4, eNodeB ID=1005, Cell FDD TDD indication=CELL_FDD' s from dual)
select substr(s,1,instr(s,'_',1,1)-1)||substr(s,instr(s,'Local Cell ID=',1,1)+14,instr(s,', Cell Name=',1,1) - instr(s,'Local Cell ID=',1,1)-14) ss
from t 
21 июн 17, 14:17    [20580654]     Ответить | Цитировать Сообщить модератору
 Re: Прощу помочь отрезать часть текста.  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
А какую задачу на самом деле решаем?
21 июн 17, 14:19    [20580657]     Ответить | Цитировать Сообщить модератору
 Re: Прощу помочь отрезать часть текста.  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7134
proxy_911
Добрый день коллеги,

Прощу помочь отрезать часть следующего текста , которые выделена с жирным красным цветом. и объединить их.. т.е 10053

1005_TEST-LTE/Cell:eNodeB Function Name=1005_TEST-LTE, Local Cell ID=3, Cell Name=XMINTRA4, eNodeB ID=1005, Cell FDD TDD indication=CELL_FDD

Не подскажите как это реализовать на уровне запроса ?

Заранее спасибо!


with t(s) as (
select '1005_TEST-LTE/Cell:eNodeB Function Name=1005_TEST-LTE, Local Cell ID=3, Cell Name=XMINTRA4, eNodeB ID=1005, Cell FDD TDD indication=CELL_FDD' from dual union all
select '15_TEST-LTE/Cell:eNodeB Function Name=1005_TEST-LTE, Local Cell ID=35, Cell Name=XMINTRA4, eNodeB ID=1005, Cell FDD TDD indication=CELL_FDD' from dual)
select
regexp_replace(
s
,'([[:digit:]]{0,5})(.?*Local Cell ID=)([[:digit:]]{1,2})(.*)'
,'\1\3') ss
from t
/
~
~
21 июн 17, 14:20    [20580662]     Ответить | Цитировать Сообщить модератору
 Re: Прощу помочь отрезать часть текста.  [new]
proxy_911
Member

Откуда:
Сообщений: 216
env,

На данный момент строка который я написал является первичным ключом на таблице..

я хочу сократить символов и создать новый Уникальный ключ в таблице типа 10053,
так как слишком много символов на ключ, запрос обрабатывается слишком медленно..
21 июн 17, 14:32    [20580711]     Ответить | Цитировать Сообщить модератору
 Re: Прощу помочь отрезать часть текста.  [new]
proxy_911
Member

Откуда:
Сообщений: 216
Огромное спасибо коллеги, вопрос решен благодаря вашему содействию. Попробую все приложенный варианты..
21 июн 17, 14:37    [20580722]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить