Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Използване на IF EXISTS с CTE

От MSDN

Може да се пренапише по този начин

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

Ето демонстрация

;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)

Резултат: 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)

Резултат: OK



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Най-сигурният начин да получите идентификатор на последния запис от таблица

  2. Предаване на таблица с данни от C# към SQL Server 2008

  3. DataTable Зарежда много бавно

  4. Каква е целта на използването на OPTION(MAXDOP 1) в SQL Server?

  5. Използвайте Създаване на изявление за създаване на таблица в SQL Server - SQL Server / T-SQL урок, част 34