Страница 1 из 1

запрос на кратную выборку в рельефе

Добавлено: 04 ноя 2013, 12:09
Petruxin
Здравствуйте.
Пока самая нужная статьяне совсем окончена задам вопрос.
Необходимо из большого количества горизонталей имеющих в атрибутах ELEV с высотой сечения рельефа 10 метров выбрать каждую 5-ую(0, 50,100...)
Сразу скажу, что решил задачу как то так (может кого улыбнет) и что характерно - получилось.

Код: Выделить всё

 "ELEV"  = '0' OR  "ELEV" ='50' OR  "ELEV" ='100' OR  "ELEV" ='150' OR  "ELEV" ='200' OR  "ELEV" = '250' OR  "ELEV" ='300' OR  "ELEV" ='350' OR  "ELEV" ='400' OR  "ELEV" ='450' OR  "ELEV" ='500' OR  "ELEV" = '550' OR  "ELEV" ='600' OR "ELEV" ='650' OR   "ELEV" ='700' OR  "ELEV" ='750' OR  "ELEV" ='800' OR  "ELEV" ='850'  OR  "ELEV" ='900' OR  "ELEV" ='950' OR  "ELEV" ='1000' OR  "ELEV" ='1050' OR  "ELEV" = '1100' OR  "ELEV" ='1150' OR  "ELEV" ='1200' OR  "ELEV" ='1250' OR  "ELEV" ='1300' OR  "ELEV" ='1350' OR  "ELEV" ='1400' OR  "ELEV" ='1450' OR  "ELEV" ='1500' OR "ELEV"  ='1550' OR  "ELEV" ='1600'
1. Пытался в скобках, через разные знаки препинания перечислять нужные высоты - выделяет все.
2. Перспективным показалось что - то типа -

Код: Выделить всё

CASE WHEN "ELEV"='ELEV/50=целое число' THEN 'YES' ELSE 'NO' END
но это конечно полная отсебятина.
Когда то на форуме задавался похожий вопрос, но я его не смог найти.
А теперь вопрос - как правильно делать подобные запросы?

Re: запрос на кратную выборку в рельефе

Добавлено: 04 ноя 2013, 12:24
dab

Код: Выделить всё

"ELEV" % 50 = 0

Re: запрос на кратную выборку в рельефе

Добавлено: 04 ноя 2013, 12:28
doujin
Для sql запроса должно быть так:

Код: Выделить всё

WHERE (ELEV % 50) = 0

Берем оператор, который возвращает остаток от деления, и если остаток равен 0, то это те горизонтали, что нам нуужны. Ссылка по теме: Modulo (Transact-SQL)

Re: запрос на кратную выборку в рельефе

Добавлено: 04 ноя 2013, 12:33
Александр Мурый
То же, что написал dab, но с немного другой логикой :)

Код: Выделить всё

NOT("ELEV" % 50)
Это именно для "выражения выделением".

Re: запрос на кратную выборку в рельефе

Добавлено: 04 ноя 2013, 12:41
Petruxin
доберусь др компа все проверю

[ Сообщение с мобильного устройства ]

Re: запрос на кратную выборку в рельефе

Добавлено: 04 ноя 2013, 15:27
Petruxin
Спасибо за помощь. 1 и 3 сработали, а вот 2ой не смог проверить. Пишет - недействительное выражение.

Re: запрос на кратную выборку в рельефе

Добавлено: 04 ноя 2013, 15:52
Александр Мурый
Petruxin писал(а):а вот 2ой не смог проверить. Пишет - недействительное выражение.
Правильно, в "конструкторе запросов", "выделении выражением" и в "калькуляторе полей" оператор WHERE и не будет работать, т.к. уже подразумевается по умолчанию. :) Нам остаётся только написать условие выражения.
Другое дело — это БД в SpatiaLite или PostGIS, где можно использовать полноценный SQL.