openquery给出不同的结果

时间:2009-08-04 22:02:39

标签: sql odbc

我有2个类似的查询

select * 
from openquery(powerschool, 
                'select * 
                 from TEACHERS 
                 where teachernumber is not null 
                   and schoolid=''1050'' 
                   and teacherloginid is not null  
                 order by teachernumber') 

SELECT * 
from openquery(powerschool, 
              'SELECT NVL(teachernumber,'''') 
               from TEACHERS 
               where teachernumber is not null 
                 and schoolid=''1050'' 
                 and teacherloginid is not null 
               order by teachernumber') 

第一个给我182行,而第二个给我83.

查询有什么问题?

2 个答案:

答案 0 :(得分:0)

由于NVL(),第二个查询永远不会为教师表返回null,因此它可以根据数据返回更多记录。

基本上“和teacherloginid不为空”永远不会被命中,因为用“”替换空值

答案 1 :(得分:0)

只是想一想......

  • 相同的服务器?也就是说,链接服务器的目标或凭证不同o您正在阅读不同的“教师”表

  • 在链接服务器(非本地)上实际运行链接的SQL语句会给你带来什么?