Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come impostare una riga predefinita per una query che non restituisce righe?

Un approccio per Oracle:

SELECT val
FROM myTable
UNION ALL
SELECT 'DEFAULT'
FROM dual
WHERE NOT EXISTS (SELECT * FROM myTable)

O in alternativa in Oracle:

SELECT NVL(MIN(val), 'DEFAULT')
FROM myTable

O in alternativa in SqlServer:

SELECT ISNULL(MIN(val), 'DEFAULT')
FROM myTable

Questi usano il fatto che MIN() restituisce NULL quando non ci sono righe.