Разделение полного имени, включая заголовок, на отдельные поля - PullRequest
1 голос
/ 08 марта 2019

Я пытаюсь разделить поле полного имени на отдельные поля в, казалось бы, древней версии DB2, поэтому я не могу использовать более новые функции, например, reverse.

Пример

FULL_NAME

Мистер Элтон Джон

Мистер Киану Ривз

Я хотел бы вернуть

НАЗВАНИЕ ПЕРВАЯ ПОСЛЕДНЯЯ

Мистер Элтон Джон

Мистер Киану Ривз

Я разочарованно близок, мне удалось получить фамилию с

RIGHT(NAME, LENGTH(NAME) - LOCATE( ' ',NAME, LOCATE(' ', NAME)+1)) AS last_name

Но DB2 на самом деле не моя вещь, поэтому любая помощь очень ценится!

Спасибо!

1 Ответ

2 голосов
/ 08 марта 2019

DB2 поддерживает regexp_substr(), поэтому вы должны иметь возможность:

select regexp_substr(name, '[^ ]+', 1, 1) as title,
       regexp_substr(name, '[^ ]+', 1, 2) as firstname,
       regexp_substr(name, '[^ ]+', 1, 3) as lastname

Но если у вас нет reverse(), у вас может не быть этой функции.

...