3

我有 2 个这样的表:

表格1:

CatID  Name
-----  ----
1      A
2      B
3      C

表 2:

ID   CatID
---  -----
1    1
2    1
3    1
4    3

表二 CatID 与表一 CatID 相同。

我想要一个查询,它显示第一个表和一个附加列,如果 CatID 存在于第二个表中,则为 True,否则为 False。上表的输出应该是:

CatID  Name  Result
-----  ----  ------
1      A     True
2      B     False
3      C     True
4

2 回答 2

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

演示

于 2013-03-26T16:13:29.890 回答
0

SQL 小提琴演示


select distinct A.CARDID, NAME, CASE WHEN ISNULL(B.CARDID, 0)=0 THEN 'FALSE'
                            ELSE 'TRUE' END
FROM table1 A
LEFT JOIN table2 B
on A.CARDID = B.CARDID
于 2013-03-26T16:20:48.293 回答