sql >> Databasteknik >  >> RDS >> Sqlserver

Hur ställer man in en standardrad för en fråga som inte returnerar några rader?

Ett tillvägagångssätt för Oracle:

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

Eller alternativt i Oracle:

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

Eller alternativt i SqlServer:

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

Dessa använder det faktum att MIN() returnerar NULL när det inte finns några rader.



  1. Hur implicita transaktioner fungerar i SQL Server

  2. Hur man returnerar det aktuella rowversion-värdet för en SQL Server-databas (T-SQL-exempel)

  3. Infogar i Oracle och hämtar det genererade sekvens-ID:t

  4. SQL Server Reguljära uttryck i T-SQL