Une approche pour Oracle :
SELECT val
FROM myTable
UNION ALL
SELECT 'DEFAULT'
FROM dual
WHERE NOT EXISTS (SELECT * FROM myTable)
Ou alternativement dans Oracle :
SELECT NVL(MIN(val), 'DEFAULT')
FROM myTable
Ou alternativement dans SqlServer :
SELECT ISNULL(MIN(val), 'DEFAULT')
FROM myTable
Ceux-ci utilisent le fait que MIN()
renvoie NULL
lorsqu'il n'y a pas de lignes.