В операторе SELECT
можно было бы оценить Substr
с использованием CASE? Или что было бы лучшим способом вернуть sub string
на основе условия?Oracle SQL: использование CASE в инструкции SELECT с помощью Substr
Я пытаюсь получить имя из столбца описания события таблицы. Строка в столбце описания события форматируется либо как text text (Mike Smith) text text
, либо text text (Joe Schmit (Manager)) text text
. Я хотел бы вернуть только имя, но некоторые из имен, за которыми следует (Manager)
, отбрасывают мой оператор SELECT
.
Это мое SELECT
заявление:
SELECT *
FROM (
SELECT Substr(Substr(eventdes,Instr(eventdes,'(')+1),1,
Instr(eventdes,')') - Instr(eventdes,'(')-1)
FROM mytable
WHERE admintype = 'admin'
AND entrytime BETWEEN sysdate - (5/(24*60)) AND sysdate
AND eventdes LIKE '%action taken by%'
ORDER BY id DESC
)
WHERE ROWNUM <=1
Это возвращает вещи, как Mike Smith
если нет (Manager)
, но возвращает вещи, как Joe Schmit (Manager
если есть.
Любая помощь была бы принята с благодарностью.
В образце «Джон Доу» в вашем втором абзаце есть квадратные скобки, которые должны быть там? –
Нет, они должны были обозначать, что может быть или не быть в поле. Я отредактировал свой пост, чтобы сделать это более понятным. – Walter41