在QGIS字段计算器中创建条件语句


15

我已经查询了有关此主题的其他一些问答,但是,没有人回答我正在寻求做的事情。

我有一个很大的数据集,我想在一个字段中搜索某个值(在这种情况下为20)的任何值,如果该值大于20,我想在另一个字段中返回值1,否则返回值0。

我尝试写一些没有运气的东西。

我正在使用QGIS 2.8。


我正在尝试找出Qgis中的快递,但没有结果。情况为“ A” =“ 1”且“ LENGHT” <= 1,然后“ C” =“ 4”时,其他错误结束
giss

Answers:


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
...

....


4

可能是这样的:

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

现场计算器

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.