Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment définir une ligne par défaut pour une requête qui ne renvoie aucune ligne ?

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.