Попробуйте этот запрос:
SELECT SUBSTR(vendor_name,
INSTR(vendor_name, ' ', 1, 1) + 1,
INSTR(vendor_name, ' ', 1, 2) - INSTR(vendor_name, ' ', 1, 1) - 1)
FROM vendors
ORDER BY vendor_id
Чтобы увидеть, как это работает, рассмотрим пример vendor_name
из Boeing Corporation Inc.
В этом случае:
INSTR(vendor_name, ' ', 1, 1) = 7 = first occurrence of space
INSTR(vendor_name, ' ', 1, 2) = 19 = second occurrence of space
Теперь здесь вызов, который мы делаем, в подстроку:
SELECT SUBSTR('Boeing Corporation Inc.',
7 + 1,
19 - 7 - 1)
, который так же, как
SELECT SUBSTR('Boeing Corporation Inc.', 8, 11) = 'Corporation'
Обратите внимание, что мой ответ предполагает, что есть второе пространство присутствует в vendor_name
(а также первое пространство). Если вы ожидаете появления сложных данных в этом столбце, вместо этого вы можете использовать регулярное выражение.
regexp_substr - ваш друг ... намного лучше, чем substr и instr – OscarAkaElvis