Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como definir uma linha padrão para uma consulta que não retorna nenhuma linha?


Uma abordagem para Oracle:
SELECT val
FROM myTable
UNION ALL
SELECT 'DEFAULT'
FROM dual
WHERE NOT EXISTS (SELECT * FROM myTable)

Ou alternativamente no Oracle:
SELECT NVL(MIN(val), 'DEFAULT')
FROM myTable

Ou alternativamente no SqlServer:
SELECT ISNULL(MIN(val), 'DEFAULT')
FROM myTable

Eles usam o fato de que MIN() retorna NULL quando não há linhas.