Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Używanie IF EXISTS z CTE

Od MSDN

Można go przepisać w ten sposób

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

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

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

Wynik: 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. Wstaw do tabeli z instrukcją SELECT plus dodatkową kolumną w SQL Server 2008

  2. policz liczbę kolumn, które mają dane dla każdego wiersza

  3. Jak załadować duży plik płaski do tabeli bazy danych za pomocą usług SSIS?

  4. Jak utworzyć tabelę za pomocą GUI w SQL Server — SQL Server / T-SQL Tutorial, część 37

  5. Jak umożliwić edycję zapytania przekazującego / przekazującego?