Создание условного оператора в QGIS Field Calculator


15

Я посмотрел некоторые другие вопросы и ответы по этой теме, однако ни один из них не затронул то, что я стремлюсь сделать.

У меня большой набор данных, и я хотел бы искать в одном поле любые значения сверх определенной суммы (в данном случае 20), и если значение больше 20, я хотел бы вернуть значение 1 в другом поле, в противном случае вернуть значение 0.

Я пытался написать что-то без удачи.

Я использую QGIS 2.8.


Я пытаюсь выяснить этот экспресс в Qgis, но у него нет результатов. Случай, когда «A» = «1» и «LENGHT» <= 1, тогда «C» = «4»,
Иначе ошибка

Ответы:


29

Легкий способ

Самый простой способ сделать это - создать новое поле с выражением

"cat" > 20

Это выражение оценивается как логическое значение True / False, которое будет представлено как целое число 1 или 0.

Виртуальные поля

Вы также можете создать виртуальное поле, которое будет автоматически возвращать обновленное значение в случае изменения значений cat(например, вы редактируете слой). Помните, что значения виртуальных полей не будут сохранены в наборе данных и будут видны только внутри этого проекта QGIS.

Больше, чем логическое

Если у вас есть больше, чем просто «больше, чем», вам нужно использовать

CASE 
  WHEN "cat" > 100 THEN 2
  WHEN "cat" > 10 THEN 1
  ELSE 0
END

6

Я только что проверил это: вы можете использовать условие несколько раз:

WHEN    cat =   1   THEN    205
WHEN    cat =   2   THEN    215
WHEN    cat =   3   THEN    225
WHEN    cat =   4   THEN    235
...

....


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.