我正在尝试编写一个查询来检查TblFamily中的值是否为null,如果是,则执行一组不同的连接。我收到错误'关键字'OUTER''附近的语法不正确。
我已经查看了其他条件连接帖子,其中大多数似乎与要加入的字段有关,而不是是否将一个连接替换为另一个连接,因此我没有找到任何正确语法的示例
任何线索?
SELECT
TblServiceUser.ServiceUserId
FROM
TblServiceUser
(CASE WHEN TblFamily.FamilyServiceUserId IS NULL THEN
(LEFT OUTER JOIN TblActivity ON TblActivity.ActivityServiceUserId = TblServiceUser.ServiceUserId)
ELSE
(LEFT OUTER JOIN TblFamily ON TblFamily.FamilyServiceUserId = TblServiceUser.ServiceUserId
LEFT OUTER JOIN TblActivity ON TblServiceUser.ServiceUserId = TblActivity.ActivityServiceUserId)
END)
答案 0 :(得分:0)
这里你需要什么
declare @SQL varchar(max)
select @SQL = 'SELECT
TblServiceUser.ServiceUserId
FROM
TblServiceUser'+
CASE WHEN TblFamily.FamilyServiceUserId IS NULL THEN
+'LEFT OUTER JOIN TblActivity ON TblActivity.ActivityServiceUserId = TblServiceUser.ServiceUserId+' ELSE
+'LEFT OUTER JOIN TblFamily ON TblFamily.FamilyServiceUserId = TblServiceUser.ServiceUserId
LEFT OUTER JOIN TblActivity ON TblServiceUser.ServiceUserId = TblActivity.ActivityServiceUserId'+ END
exec @SQL