Один и тот же запрос дает разные результаты в SQL - PullRequest
2 голосов
/ 26 мая 2011

На одном компьютере у нас есть набор данных и говорят, что у нас есть столбец isValid, который содержит true или false, и у нас также есть другой столбец, который определяет группу. Для каждой группы может быть только одно значение как true для столбца Isvalid а остальное как ложь.

Теперь, когда мы запускаем наш запрос, основанный на группе, строка, содержащая столбец Isvalid как True, становится первой строкой в ​​результате запроса, а остальные строки содержат столбец Isvalid, которые являются ложными.

Здесь мы не используем какие-либо 'order by' или 'group by', мы просто используем условия 'inner join' и 'where'.

Проблема в том, что на нашем сервере разработки и тестовом сервере мы получаем ожидаемые результаты запроса, но когда он переходит на действующий сервер (для всех трех серверов, то есть для сервера разработки, тестирования и живого сервера, данные совершенно разные, и все эти серверы работают в той же версии SQL 2005) результаты меняются местами (строка с ошибочным столбцом isvalid становится первой строкой в ​​результате запроса), не знаю почему. Любые предложения, пожалуйста?

Пожалуйста, помогите,

Большое спасибо, Byfour

1 Ответ

5 голосов
/ 26 мая 2011

Очевидный ответ: разные данные на тестовом, dev и живых серверах.

Но даже с теми же данными, без условия ORDER BY, результаты обычно возвращаются в порядке кластерного индекса, НО это не гарантировано.

Если вам требуются результаты в определенном порядке, тогда вы должны использовать предложение ORDER BY.

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