sql >> Databáze >  >> RDS >> Sqlserver

Jak nastavit výchozí řádek pro dotaz, který nevrací žádné řádky?

Jeden přístup pro Oracle:

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

Nebo alternativně v Oracle:

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

Nebo alternativně v SqlServer:

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

Ty využívají skutečnost, že MIN() vrátí NULL když nejsou žádné řádky.



  1. SQL Server 2016:Návrhář dotazů

  2. mysql ERROR 2002 (HY000):Nelze se připojit k místnímu serveru MySQL přes soket '/var/run/mysqld/mysqld.sock' (2)

  3. Osvědčený postup:Import souboru mySQL do PHP; rozdělené dotazy

  4. Jak opravit „Požadavek COMMIT TRANSACTION nemá odpovídající BEGIN TRANSACTION“ v SQL Server