逐行检查值

Man*_*tel 3 sql sql-server-2005

我有2个这样的表:

表格1:

CatID  Name
-----  ----
1      A
2      B
3      C
Run Code Online (Sandbox Code Playgroud)

表2:

ID   CatID
---  -----
1    1
2    1
3    1
4    3
Run Code Online (Sandbox Code Playgroud)

表2 CatID与table1 CatID相同.

我想要一个查询,其中显示第一个表,其中包含一个附加列,如果第二个表中存在CatID,则表示为True,否则为False.上表的输出应为:

CatID  Name  Result
-----  ----  ------
1      A     True
2      B     False
3      C     True
Run Code Online (Sandbox Code Playgroud)

Tim*_*ter 5

你可以使用CASEEXISTS:

SELECT CatID,
       Name,
       Result = CASE WHEN EXISTS(SELECT 1 
                                 FROM Table2 t2 
                                 WHERE t2.CatID=t1.CatId)
                THEN 'True' ELSE 'False' END
FROM Table1 t1
Run Code Online (Sandbox Code Playgroud)

DEMO