从 sql 服务器中的 linkedserver 调用时,from 子句中的 Sybase 子查询不能在哪里?
Sybase subquery in from clause cannot have where when called from linkedserver in sql server?
以下 sql 通过 "SAP ASE OLE DB Provider" 在 sql 服务器中工作。
select * from openquery(Sybase,'
select * from (
select * from X
) x
')
但是,下面的方法不起作用。这听起来像是一个可怕的错误。
select * from openquery(Sybase,'
select * from (
select * from X
where not exists (select * from Y where Y.c = X.c) -- c is not key in both tables
) x
')
是否有重写子查询使其工作的方法? (它必须在子查询中)。还是Sybase链接服务器驱动有问题?
试试这个(如果 c 是整数且不能为 -1)
select
*
from
( select
X.*
from
X
left join ( select distinct
c
from
Y) as y on X.c = y.c
join ( select
-1 as c) as z on coalesce(y.c, -1) = z.c
) x
以下 sql 通过 "SAP ASE OLE DB Provider" 在 sql 服务器中工作。
select * from openquery(Sybase,'
select * from (
select * from X
) x
')
但是,下面的方法不起作用。这听起来像是一个可怕的错误。
select * from openquery(Sybase,'
select * from (
select * from X
where not exists (select * from Y where Y.c = X.c) -- c is not key in both tables
) x
')
是否有重写子查询使其工作的方法? (它必须在子查询中)。还是Sybase链接服务器驱动有问题?
试试这个(如果 c 是整数且不能为 -1)
select
*
from
( select
X.*
from
X
left join ( select distinct
c
from
Y) as y on X.c = y.c
join ( select
-1 as c) as z on coalesce(y.c, -1) = z.c
) x