SQL中的条件连接

时间:2017-06-06 10:14:39

标签: sql ssrs-2008

我正在尝试编写一个查询来检查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)

1 个答案:

答案 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