SQL Server OPENQUERY против Postgres не может вернуть все записи, основанные на предложении where - PullRequest
0 голосов
/ 17 октября 2018

Я выполняю удаленный запрос к базе данных Postgres, поддерживаемой поставщиком.Удаленный запрос выполняется через хранимую процедуру в SQL Server.Мой запрос не возвращает все записи, которые он должен.Если я добавлю еще один столбец в предложение where, то запрос вернет гораздо больше записей.

Я не могу понять, почему это происходит, и у меня есть подозрение, что я пропускаю еще больше записей.Вот код SQL Server.

Это выполняется почти сразу и возвращает 293 записи и не возвращает itemid 865

SELECT 
    itemid 
FROM 
    OPENQUERY(PostgresSource, '
        SELECT itemid 
        FROM items 
        WHERE 
            updated <= ''2018-10-16 23:59'' 
            AND updated > ''2018-10-07''  
    ')

Это выполняется за 14 секунд и возвращает 1469 записей и возвращает itemid 865!

SELECT 
    itemid 
FROM 
    OPENQUERY(PostgresSource, '
        SELECT itemid 
        FROM items 
        WHERE 
            updated <= ''2018-10-16 23:59'' 
            AND updated > ''2018-10-07'' 
            AND itemid <> ''anythingcangohere''
    ')

Информация о моей версии

PostgreSQL 9.5.3 на i686-pc-linux-gnu, скомпилированный gcc (Ubuntu 4.8.4-2ubuntu1 ~ 14.04.1) 4.8.4, 32-bit

Мой коллега и я работаем над базами данных в течение многих лет, и мы просто можемне понять этоПо нашему мнению, добавление предложения в инструкцию WHERE не должно возвращать больше строк.Это продукт производителя, поэтому у нас нет доступа к самой коробке, и мы имеем ограниченный доступ к SQL.

Любая помощь будет принята с благодарностью!

Чтобы снять опасения, что мой код вышескриншоты - это не тот код, который вызывает проблемы.Я прошу прощения за размытие, но я должен размыть имена полей и имена таблиц.В поле или имени таблицы нет специальных символов или чего-либо еще, кроме цифр и букв.Снимки экрана показывают немного другое количество строк, чем указано выше, поскольку исходные данные меняются, и я сделал снимки экрана примерно через 24 часа после моего исходного поста.Оба приведенных ниже запроса были выполнены в течение нескольких секунд.

272 Rows

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...