sql >> Databasteknik >  >> RDS >> Sqlserver

Använder IF EXISTS med en CTE

Från MSDN

Det kan skrivas om så här

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

Här är en 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)

Resultat: 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)

Resultat: OK



  1. Hur man grupperar på varandra följande rader i SQL efter flera kolumner

  2. VÄLJ dynamiska kolumner utan funktioner i PostgreSQL

  3. PHP &MySQL:Konvertera lagrad TIMESTAMP till användarens lokala tidszon

  4. Ladda en MySQL innodb-databas i minnet