Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > Извлечение.. меньших максимальных и


Автор: Sunvas 3.5.2008, 01:42
Есть таблица, в которой находиться целочисленное поле `pos`. Нужно одним запросом извлечь все строки из базы, у которых значение поля `pos` меньше заданого, но максимальны и больше заданого, но минимальны.

Т.е. например:

id|pos
1|5
2|5
3|8
4|4
5|3
6|8
7|8
8|9
9|9
10|10


Задано число 6, должно извлечь строки с идам 1,2,3,6,7. 1 и 2 извлекаються, потому что у них pos=5 (меньшее максимальное число), а 3,6,7 потому что pos у них=8 (большее минимальное).

Автор: skyboy 3.5.2008, 08:45
сначала выбираешь минимальное "после" и максимальное "до", а потом вставляешь эти значения в WHERE для выбора набора строк(либо при помощи подзапроса, либо при помощи переменных).
зря не указал СУБД с версией.

Автор: Sunvas 3.5.2008, 10:54
Цитата(skyboy @  3.5.2008,  08:45 Найти цитируемый пост)
зря не указал СУБД с версией.

Поздно было...  smile  MySql 5

 smile 

Автор: Magnifico 3.5.2008, 17:28
если ещё актуально:

Код

select * 
from table
where pos =
(
select max(pos)
from table
where  pos < 6  
)
or pos =
(
select min(pos)
from table
where  pos > 6  
)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)