Wie wähle ich einen booleschen Wert aus einer Unterabfrage mit der IF EXISTS-Anweisung (SQL Server) aus?
Es sollte so etwas sein wie:
SELECT
TABEL1.Id,
NewFiled = (IF EXISTS(SELECT Id FROM TABLE2 WHERE TABLE2.ID = TABEL1.ID)
SELECT 'TRUE'
ELSE
SELECT 'FALSE')
FROM TABEL1
sql
sql-server
exists
Nalaka526
quelle
quelle
SELECT Id, 'TRUE' AS NewFiled FROM TABEL1 INTERSECT SELECT Id, 'TRUE' AS NewFiled FROM TABEL2 UNION SELECT Id, 'FALSE' AS NewFiled FROM TABEL1 EXCEPT SELECT Id, 'FALSE' AS NewFiled FROM TABEL2;
quelle
INTERSECT
,UNION
undEXCEPT
in einer Abfrage!Verwenden Sie eine
CASE
Anweisung und machen Sie es so:SELECT T1.Id [Id] ,CASE WHEN T2.Id IS NOT NULL THEN 'TRUE' ELSE 'FALSE' END [Has Foreign Key in T2] FROM TABLE1 [T1] LEFT OUTER JOIN TABLE2 [T2] ON T2.Id = T1.Id
quelle