Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie legt man eine Standardzeile für eine Abfrage fest, die keine Zeilen zurückgibt?

Ein Ansatz für Oracle:

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

Oder alternativ in Oracle:

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

Oder alternativ im SqlServer:

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

Diese nutzen die Tatsache, dass MIN() gibt NULL zurück wenn es keine Zeilen gibt.