没有匹配比较器的 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
我还需要在两个数据库之间创建一个 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