Использование подстроки и INSTR в Oracle - PullRequest
0 голосов
/ 20 января 2012

Я не могу создать этот запрос Выбрать:

Когда я запрашиваю:

SELECT DISTINCT PRODUCT_ID FROM SYSADM.TABLE; 

Я получаю вывод как:

EMA12345

EMA4567844

EMA4545455

US12342

NA4545454

PRS767657

Теперь яхочу получить данные, например, полученный идентификатор продукта:

12345

4567844

4545455

US12342

NA4545454

PRS767657

Это означает, что каждый идентификатор продукта, отличный от EMA, должен быть таким, какой он есть, а те, которые начинаются с EMA, должны быть без EMA.

Необходимо добавить это в другой запрос выбора.Не могу использовать процедуру.

Ответы [ 3 ]

1 голос
/ 20 января 2012
SELECT DECODE( INSTR( product_id, 'EMA' ), 1, SUBSTR( product_id, 4 ), 
               product_id ) AS my_column
  FROM SYSADM.TABLE

В основном, если первые три символа product_id являются "EMA", тогда используйте 4-й символ до конца product_id, в противном случае используйте весь product_id.

1 голос
/ 20 января 2012

Вы можете объединить в цепочку такие операторы, как:

select replace( replace( replace( product_id, 'EMA' ), 'US' ), 'NA' ) from sysadm.table;

Или следуйте одной из альтернатив из здесь .

1 голос
/ 20 января 2012

Используйте функцию ЗАМЕНА :

SELECT DISTINCT REPLACE(PRODUCT_ID, 'EMA') FROM SYSADM.TABLE
...