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

Откуда: Екатеринбург
Сообщений: 71782
Дано 'Any text 00', ''Any text 02 any', 'Any text 04 text', нужно выковырять только циферки. Нужно в SQL это провернуть. На серваке Оракл десятка.
28 фев 11, 07:55    [10297767]     Ответить | Цитировать Сообщить модератору
 Re: Как в SQL из текста выдернуть цифры?  [new]
MazoHist
Guest
STFF translate
А если 'Any text 05 text 06...' и т д - что делать?
28 фев 11, 08:09    [10297786]     Ответить | Цитировать Сообщить модератору
 Re: Как в SQL из текста выдернуть цифры?  [new]
XDiaBLo
Member

Откуда: Екатеринбург
Сообщений: 71782
MazoHist
STFF translate
А если 'Any text 05 text 06...' и т д - что делать?

Спасибо. У меня только одна пара цифр встречается в тексте.
28 фев 11, 08:17    [10297797]     Ответить | Цитировать Сообщить модератору
 Re: Как в SQL из текста выдернуть цифры?  [new]
Blond_me
Member

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

Привет =)
не смогла найти,как отправить сообщение в личку, очень нужно документацию по Spring 3.0 перевести, я тут чего-то напереводила, но за правильность не ручаюсь =)
если не сложно, ответь пожалуйста на почту
blond__me@mail.ru
зарание огромное спасибо =)
28 фев 11, 09:20    [10297924]     Ответить | Цитировать Сообщить модератору
 Re: Как в SQL из текста выдернуть цифры?  [new]
SysOper
Member

Откуда: M
Сообщений: 9760
XDiaBLo
Спасибо. У меня только одна пара цифр встречается в тексте.

SELECT regexp_substr('Any text 01 sdf', '\d{2}') FROM dual
28 фев 11, 09:52    [10298068]     Ответить | Цитировать Сообщить модератору
 Re: Как в SQL из текста выдернуть цифры?  [new]
XDiaBLo
Member

Откуда: Екатеринбург
Сообщений: 71782
Blond_me
XDiaBLo,

Привет =)
не смогла найти,как отправить сообщение в личку, очень нужно документацию по Spring 3.0 перевести, я тут чего-то напереводила, но за правильность не ручаюсь =)
если не сложно, ответь пожалуйста на почту
blond__me@mail.ru
зарание огромное спасибо =)

Да я забил уже на перевод, времени уходило дофига, проще читать на английском и всё. А благодетелем вселенной становиться не вижу смысла.
28 фев 11, 09:54    [10298082]     Ответить | Цитировать Сообщить модератору
 Re: Как в SQL из текста выдернуть цифры?  [new]
Karlik
Member

Откуда:
Сообщений: 70
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod
PL/SQL Release 10.2.0.3.0 - Production
CORE	10.2.0.3.0	Production
TNS for 32-bit Windows: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
Из закромов, не мое:
SELECT regexp_replace('Any text 05 text 06 any text 01', '[^[:digit:]]') result FROM dual;
Результат:
050601
28 фев 11, 11:07    [10298584]     Ответить | Цитировать Сообщить модератору
 Re: Как в SQL из текста выдернуть цифры?  [new]
AmKad
Member

Откуда:
Сообщений: 5222
with s as (
select 'Any text 61 sdf' s from dual)
select 
translate(s, '1' || translate(s, 'a1234567890', 'a'), '1') f1
from s
28 фев 11, 11:17    [10298670]     Ответить | Цитировать Сообщить модератору
 Re: Как в SQL из текста выдернуть цифры?  [new]
XDiaBLo
Member

Откуда: Екатеринбург
Сообщений: 71782
Спасибо всем, я использовал этот вариант:
SysOper
XDiaBLo
Спасибо. У меня только одна пара цифр встречается в тексте.

SELECT regexp_substr('Any text 01 sdf', '\d{2}') FROM dual

Показался наиболее подходящим.
28 фев 11, 12:15    [10299163]     Ответить | Цитировать Сообщить модератору
 Re: Как в SQL из текста выдернуть цифры?  [new]
RA\/EN
Member

Откуда:
Сообщений: 3659
XDiaBLo
Спасибо всем, я использовал этот вариант:
SysOper
пропущено...

SELECT regexp_substr('Any text 01 sdf', '\d{2}') FROM dual

Показался наиболее подходящим.

Когда кажется...
SQL> set timing on
SQL> 
SQL> WITH q AS (SELECT 'Any text '||LPAD(MOD(LEVEL,100),2,'0')||' sdf' s FROM dual CONNECT BY LEVEL<=1e5)
  2  SELECT count(regexp_substr(s, '\d{2}')) c1
  3    FROM q
  4  /
 
        C1
----------
    100000
 
Executed in 1,609 seconds
SQL> WITH q AS (SELECT 'Any text '||LPAD(MOD(LEVEL,100),2,'0')||' sdf' s FROM dual CONNECT BY LEVEL<=1e5)
  2  SELECT COUNT(regexp_replace(s, '[^[:digit:]]')) c2
  3    FROM q
  4  /
 
        C2
----------
    100000
 
Executed in 1,532 seconds
SQL> WITH q AS (SELECT 'Any text '||LPAD(MOD(LEVEL,100),2,'0')||' sdf' s FROM dual CONNECT BY LEVEL<=1e5)
  2  SELECT COUNT(translate(s, '1' || translate(s, 'a1234567890', 'a'), '1')) c2
  3    FROM q
  4  /
 
        C2
----------
    100000
 
Executed in 0,375 seconds
28 фев 11, 13:27    [10299758]     Ответить | Цитировать Сообщить модератору
 Re: Как в SQL из текста выдернуть цифры?  [new]
XDiaBLo
Member

Откуда: Екатеринбург
Сообщений: 71782
RA\/EN,
Если весь запрос, который выводит всего четыре сотни строк в итоге, выполняется секунду, мне плевать на ваши результаты тестирования. :)
28 фев 11, 13:31    [10299794]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить