在另一个表中查找记录

时间:2014-12-17 15:12:44

标签: sql-server tsql join

我想表明一个表中的记录存在于另一个表中并使用下面的代码。这可能吗?

CASE WHEN EXISTS (
SELECT  *
FROM    tblA a
        INNER JOIN tblB b ON a.AccountID = b.AccountID
                ) THEN 'YES' ELSE 'NO' END

2 个答案:

答案 0 :(得分:2)

Dave Gugg在评论中提到这是可能的。另一种方法是使用LEFT JOIN,对于那些在表B中不匹配的行显示NO,对于匹配显示YES的那些:

SELECT  a.*, CASE WHEN b.AccountID IS NOT NULL THEN 'YES' ELSE 'NO' END as YesNoCol
FROM    tblA a
LEFT JOIN tblB b ON a.AccountID = b.AccountID

答案 1 :(得分:1)

不。做这样的事情:

SELECT CASE WHEN (SELECT COUNT(*)
                  FROM tblA AS A
                  INNER JOIN tblB AS B 
                      ON A.AccountID = B.AccountID) > 1
            THEN 'YES' ELSE 'NO' END AS T;