没有匹配比较器的 TSQL CASE 语句

TSQL CASE statement with no matching comparator

我还需要在两个数据库之间创建一个 CASE 语句,两个表之间没有类似的数据点,除了一个 varchar 字段,该字段在标题文本中具有正确的 ID 号。这是我目前拥有的案例代码。

CASE WHEN sg.lListingNumber in (SELECT c.ListingName
                                FROM CampDB.dbo.tblCampgrounds c, Visitors.dbo.VCAMPS_GLOBAL g
                                WHERE c.ListingName like '%g.lListingNumber%')
     THEN 'YES'
     ELSE 'NO'
END

如果我可以为您提供更多信息,请告诉我。

下面的子查询可能就是您所需要的。我会回应其他人所说的,您应该尽量避免使用相关子查询执行此操作,而是将其重写到您的主查询中作为 tblCampgrounds table.

的左连接

我也省略了 Visitors.dbo.VCAMPS_GLOBAL table 因为我看不出它与 casestatement 中的子查询有什么关系

CASE
    WHEN EXISTS (
        SELECT 1
        FROM CampDB.dbo.tblCampgrounds c
        WHERE c.[ListingName] LIKE '%'  + sg.lListingNumber + '%'
    )
        THEN 1
    ELSE 0
END