SQL Server 如何在OpenQuery链接服务器中添加一个where子句来调节另一个数据库?

ovfsdjhp  于 2023-02-07  发布在  其他
关注(0)|答案(1)|浏览(137)

我正在学习sql server中的linked server,我在sql server中链接了oracle数据库,并成功地对oracle链接数据库运行了查询,如下所示:

SELECT *
FROM OPENQUERY(DB_ORCL,'select Name, ID from OdataLink.patients')

我在sql server中也有一个表,我想在上面的OPENQUERY的where子句中使用该数据,但不知道如何使用。

Select ID from PatientTable

所以基于上面的sql查询,我想要这样的东西:

SELECT *
FROM OPENQUERY(DB_ORCL,'select Name, ID from OdataLink.patients')
where "--ID in OPENQUERY above" IN (Select ID from PatientTable)

或者

SELECT *
FROM OPENQUERY(DB_ORCL,'select Name, ID from OdataLink.patients where ID in (--Select ID from PatientTable)')

更新日期:

我测试了Stu提供的解决方案,它几乎可以工作,但我无法在外部where子句中调用openquery中的列字段
Screenshot of the error

kcugc4gi

kcugc4gi1#

尝试 exists 关联

select *
from OpenQuery(DB_ORCL,'select Name, ID from OdataLink.patients') q
where exists (
  select * from dbo.PatientTable p
  where p.Id = q.Id
);

相关问题