Хммм.,,Я думаю, я бы сформулировал это следующим образом:
SELECT (CASE WHEN ORGNBR IS NOT NULL THEN 'O' || orgnbr
WHEN PERSNBR IS NOT NULL THEN 'P' || persnbr
END) as owner
FROM table ;
(Вы можете добавить дополнительные столбцы, если хотите.)
Важно, что это меняет логику, поэтому она скорее "положительная", чем "отрицательная",То есть условия: «если orgnbr
существует, то перед 'O'
», а не «если orgnbr
не существует, то затем 'P'
».За последним труднее следовать, и он не учитывает больше категорий.
При этом также используется оператор concat, более разговорный в Oracle.