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

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
Petruxin
Гуру
Сообщения: 1695
Зарегистрирован: 14 июн 2011, 16:47
Репутация: 133
Ваше звание: Завсегдатай
Откуда: Череповец

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

Сообщение Petruxin » 04 ноя 2013, 12:09

Здравствуйте.
Пока самая нужная статьяне совсем окончена задам вопрос.
Необходимо из большого количества горизонталей имеющих в атрибутах 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
но это конечно полная отсебятина.
Когда то на форуме задавался похожий вопрос, но я его не смог найти.
А теперь вопрос - как правильно делать подобные запросы?
Последний раз редактировалось Petruxin 04 ноя 2013, 15:28, всего редактировалось 1 раз.

Аватара пользователя
dab
Гуру
Сообщения: 671
Зарегистрирован: 16 дек 2011, 20:02
Репутация: 170
Ваше звание: Гуру
Откуда: Москва
Контактная информация:

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

Сообщение dab » 04 ноя 2013, 12:24

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

"ELEV" % 50 = 0

doujin
Активный участник
Сообщения: 163
Зарегистрирован: 28 июн 2012, 01:02
Репутация: 84
Откуда: Vladivostok

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

Сообщение doujin » 04 ноя 2013, 12:28

Для sql запроса должно быть так:

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

WHERE (ELEV % 50) = 0

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

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

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

Сообщение Александр Мурый » 04 ноя 2013, 12:33

То же, что написал dab, но с немного другой логикой :)

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

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

Petruxin
Гуру
Сообщения: 1695
Зарегистрирован: 14 июн 2011, 16:47
Репутация: 133
Ваше звание: Завсегдатай
Откуда: Череповец

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

Сообщение Petruxin » 04 ноя 2013, 12:41

доберусь др компа все проверю

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

Petruxin
Гуру
Сообщения: 1695
Зарегистрирован: 14 июн 2011, 16:47
Репутация: 133
Ваше звание: Завсегдатай
Откуда: Череповец

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

Сообщение Petruxin » 04 ноя 2013, 15:27

Спасибо за помощь. 1 и 3 сработали, а вот 2ой не смог проверить. Пишет - недействительное выражение.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

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

Сообщение Александр Мурый » 04 ноя 2013, 15:52

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

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей