Войти

Показать полную графическую версию : Приоритет при сортировке результатов Select-запроса


evg64
28-05-2011, 17:40
Добрый день! Допустим, есть таблица Table1 с 1 столбцом (ID) и 4000 строк, где значения ячеек - числа от 1 до 4000. Пишется запрос:
Select ID from Table1 where ID>200 and ID<500 or ID>900 and ID<1500 or ID>3000 and ID<3300
В запросе выбираются значения из 3-х интервалов: [200;500], [900;1500], [3000;3300]. Как задать разный приоритет интервалам при сортировке результатов поиска? Например, сначала [900;1500], потом [200;500], потом [3000;3300]. Специально привожу именно такую последовательность, чтобы нельзя было воспользоваться оператором "order by", т.к. он не подходит для реальной задачи.

Coutty
28-05-2011, 18:41
(SELECT id FROM table1 WHERE id>900 AND id<1500 ORDER BY id asc)
UNION
(SELECT id FROM table1 WHERE id>200 AND id<500 ORDER BY id asc)
UNION
(SELECT id FROM table1 WHERE id>3000 AND id<3300 ORDER BY id asc)

Ну и при желании каждый из интервалов можно сортировать в обратном порядке.

Справка: http://www.mysql.ru/docs/man/UNION.html




© OSzone.net 2001-2012