sql >> Database >  >> RDS >> Sqlserver

IF EXISTS gebruiken met een CTE

Van MSDN

Het kan zo herschreven worden

WITH ADMISSION_OUTSIDE AS 
(   .....
.....
)
SELECT 'OK' WHERE EXISTS (SELECT * FROM ADMISSION_OUTSIDE)
UNION ALL
SELECT 'NOT OK' WHERE NOT EXISTS (SELECT * FROM ADMISSION_OUTSIDE)

Hier is een demo

;WITH CTE AS
(
SELECT 1 as a WHERE 1=0
)
SELECT 'OK' WHERE EXISTS (SELECT * FROM CTE)
UNION ALL
SELECT 'NOT OK' WHERE NOT EXISTS (SELECT * FROM CTE)

Resultaat: NOT OK

;WITH CTE AS
(
SELECT 1 as a WHERE 1=1
)
SELECT 'OK' WHERE EXISTS (SELECT * FROM CTE)
UNION ALL
SELECT 'NOT OK' WHERE NOT EXISTS (SELECT * FROM CTE)

Resultaat: OK



  1. utf8-codering in Perl en MySql

  2. PostgreSQL-deadlocks vermijden bij het uitvoeren van bulkupdate- en verwijderingsbewerkingen

  3. Alternatief voor databaseontwerp met opgesomde kolommen, wat leidt tot slechte prestaties

  4. FOUT:kon bestand pg_tblspc/4815857/PG_11_201809051/16321 niet uitbreiden:geen ruimte over op het apparaat