DBeaver - Странное поведение с предложением WHERE - PullRequest
0 голосов
/ 04 октября 2018

При работе в DBeaver, когда я запускаю следующий запрос, я получаю 337 возвращенных записей.

SELECT * 
FROM Prices_Combined

Одна из этих записей, которая является предметом этого вопроса, появляется в результатах и ​​имеет AccountId '7407-0000'.Эта запись имеет ненулевые значения для трех своих столбцов;Field1, Field2 и Field3.

Теперь проблема дочерняя.Когда я запускаю следующий запрос, я получаю 232 записи, но запись «7407-0000» не появляется в результатах.

SELECT *
FROM Prices_Combined
WHERE (NOT (Field1 = 0
    AND Field2 = 0
    AND Field3 = 0))

Странно, но еще более странно то, что при запуске следующегозапрос, я получаю запись обратно:

SELECT *
FROM Prices_Combined
WHERE AccoundId = '7407-0000'
    AND (NOT (Field1 = 0
        AND Field2 = 0
        AND Field3 = 0))

Через некоторое время, глядя на DBeaver, пытаясь выяснить это, я попытался выполнить свой запрос в Excel, который является конечным результатом задачи.В Excel после вызова моего запроса (с условным условием, но без указания идентификатора учетной записи) я получил правильный результат: моя запись 7407-0000 появилась в списке, а записи с нулевым значением не появились.Исходя из этого, это заставляет меня думать, что, возможно, что-то не работает правильно в DBeaver?Я делаю что-то явно неправильно?Я пробовал разные версии одной и той же логики, описанной в предложении WHERE, но все они возвращали один и тот же неверный результат.

...