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

15

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

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

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

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

user35127
источник
Я пытаюсь выяснить этот экспресс в 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
...

....

Elmo
источник
4

Возможно, что-то вроде этого:

case 
when "FIELD" > 20 then 1
else 0 
end

Полевой калькулятор

Джозеф
источник