Мне нужно решение для запроса select в Sql Server 2005.
Я хотел бы получить запрос, возвращающий два ResultSets, каждый из которых содержит ровно половину всех записей, соответствующих определенным критериям. Я попытался использовать TOP 50 PERCENT в сочетании с Order By, но если количество записей в таблице нечетное, одна запись будет отображаться в обоих наборах результатов. Я не хочу, чтобы какая-либо запись дублировалась по наборам записей. Пример:
У меня есть простая таблица с полями TheID (PK) и TheValue (varchar (10)) и 5 записей. Пропустите предложение where на данный момент.
SELECT TOP 50 PERCENT * FROM TheTable ORDER BY TheID asc
приводит к выбранному id 1,2,3
SELECT TOP 50 PERCENT * FROM TheTable ORDER BY TheID desc
приводит к выбранному id 3,4,5
3 - это dup. В реальной жизни, конечно, запросы довольно сложны с тонной частью предложений и подзапросов.