Подстр в Oracle из столбца - PullRequest
       9

Подстр в Oracle из столбца

0 голосов
/ 13 января 2019

Что такое Синтаксис для substr в Oracle для вычитания строки у меня есть "123456789 # 073" Я хочу только то, что после #

субстрат (табл.кол, 17,3) это нормально ?

Ответы [ 2 ]

0 голосов
/ 13 января 2019

Я думаю, что самый прямой метод может быть regexp_substr():

select regexp_substr('123456789 #073', '[^#]+$')
from dual;

Регулярное выражение гласит: «получите все нехеш-символы в конце строки».

Если вы знаете, что есть 3 символа и действительно хотите последние три символа строки:

select substr('123456789 #073', -3)
0 голосов
/ 13 января 2019

Скорее всего, самый простой (и наиболее эффективный) способ сделать это - использовать функции базовой строки:

SELECT SUBSTR(col, INSTR(col, '#') + 1)
FROM yourTable;

Демо

Мы также можем попробовать использовать REGEXP_REPLACE здесь:

SELECT REGEXP_REPLACE(col, '.*#(.*)', '\1')
FROM yourTable;

Опция регулярного выражения в целом не будет работать так же хорошо, как первый запрос. Причина этого заключается в том, что вызов регулярного выражения приводит к снижению производительности. Возможно, вы захотите рассмотреть вариант регулярного выражения, если ожидаете, что строковая логика может измениться или усложниться в будущем. В противном случае, по возможности, используйте базовые строковые функции.

...