Un enfoque para Oracle:
SELECT val
FROM myTable
UNION ALL
SELECT 'DEFAULT'
FROM dual
WHERE NOT EXISTS (SELECT * FROM myTable)
O alternativamente en Oracle:
SELECT NVL(MIN(val), 'DEFAULT')
FROM myTable
O alternativamente en SqlServer:
SELECT ISNULL(MIN(val), 'DEFAULT')
FROM myTable
Estos utilizan el hecho de que MIN()
devuelve NULL
cuando no hay filas.