Вы можете использовать функцию NVL2
для построения вашего запроса. Имеет три параметра
NVL2(expr1, expr2, expr3)
Если expr1 не равен NULL, он возвращает expr2, если он равен NULL, он возвращает expr3.
Например, NVL2(codigo,'codigo-','')
добавляет '-', только если codigo не пуст.
Если все сложнее, вы можете использовать оператор CASE
, например, так:
SELECT CASE
WHEN codigo IS NOT NULL and descrip IS NOT NULL THEN codigo||'-'||descript
WHEN codigo IS NOT NULL and descrit IS NULL THEN codigo
WHEN codigo IS NULL ANd descrip IS NOT NULL THEN descrip
ELSE NULL
END as myresult
FROM mytable;