Я использую SQL Server 2008.
У меня есть запрос, который вытаскивает два случайных BikeID из таблицы, которая называется Bikes. Таблица выглядит так:
BikeID BikeName
1 Bob
2 Cindy
3 Carl
4 Joe
5 Jane
Я использую функцию NEWID (), чтобы вытащить два случайных идентификатора велосипеда:
SELECT TOP 2 BikeID
FROM Bikes
ORDER BY NEWID()
Мои результаты выглядят так:
Row - BikeID
1 5
2 1
Row - BikeID
1 3
2 4
Row - BikeID
1 2
2 5
Row - BikeID
1 3
2 3
Моя проблема в том, что я придумаю дубликаты, то есть дважды получаю одно и то же число, см. Последний пример результатов. Я НЕ уверен, может ли NEWID () возвращать одно и то же число дважды или нет. Если нет, то я должен иметь сбой в другом месте.
Это на самом деле не те результаты, которые я получаю. Результаты такого рода появляются на моей веб-странице, которая вызывает этот запрос. Итак, я получаю дубликаты на веб-странице. Я не воспроизводил эти результаты, используя только SQL в модуле запросов к базе данных.
Это лучший или правильный способ получить две случайные строки из запроса? Устраняет ли NEWID () возможность возврата дубликатов?