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

Запросы в QGIS

Добавлено: 28 апр 2015, 10:50
Vedmed
Что используется в качестве групповых шаблонов в QGIS? Полагал, что * заменяет любое количество неизвестных символов, но запрос с ней не работает должным образом. Либо я использую не тот синтаксис, либо не тот символ. Запрос:
"NAME_CITY" = 'А*'
мне казалось, что данный запрос должен искать названия всех городов начинающихся на A, но не выбирается ни один город. Что я делаю не так?

И еще вопрос, какой символ в запросе заменяет один неизвестный символ (в ArcView это знак вопроса)?

Re: Запросы в QGIS

Добавлено: 28 апр 2015, 11:30
Игорь Лебедь
Попробуйте "NAME_CITY" LIKE 'А%'

Re: Запросы в QGIS

Добавлено: 28 апр 2015, 11:38
Vedmed
Ага, теперь работает. Значит % вместо * и LIKE вместо =
А для замены одного неизвестного символа что использовать? Например если мне надо найти названия городов, начинающиеся на М и из 5 букв? В арквью это было бы, что-то вроде:
"NAME_CITY" LIKE 'M????'

Re: Запросы в QGIS

Добавлено: 28 апр 2015, 12:35
Игорь Лебедь
Метод такой: создаёте новое поле (у меня на примере Namea), в него пишете результат вычисления в калькуляторе полей:

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

regexp_replace("Name",'М','Я')
Спойлер
Replace_QGIS.jpg
Replace_QGIS.jpg (309.61 КБ) 5336 просмотров
В принципе, можно и сразу в это же поле писать результат вычисления, просто для надёжности и больших данных лучше на живых данных не экспериментировать.

Re: Запросы в QGIS

Добавлено: 28 апр 2015, 12:52
Игорь Лебедь
Подумал, и решил, может, Вам не то надо. Корректнее, наверно, будет так:

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

CASE
		WHEN "Name" LIKE 'М%' AND length("Name")=5 THEN 'Ю'||right("Name",4) 
		ELSE "Name"
END
Спойлер
Replace_QGIS2.jpg
Replace_QGIS2.jpg (330.34 КБ) 5330 просмотров

Re: Запросы в QGIS

Добавлено: 28 апр 2015, 13:00
Vedmed
Отлично! То что нужно получилось запросом:
"NAME_CITY" LIKE 'М%' AND length ( "NAME_CITY")=5
Не знал раньше про length. Спасибо. Проблема решена.