QGIS字段计算器中的列标题使用通配符?


10

我知道您可以在字段计算器中使用通配符(在字段计算器中):

case when "column" ILIKE '%example%' then 1
else 0
end

您可以为列标题本身做类似的事情吗?

我之所以这样问,是因为我要联接多个图层(使用Joins属性),这将使我更容易编辑一组过滤器,而不是编辑多个过滤器,因为列名必须包含联接的图层名称。

我正在使用QGIS 2.2。

Answers:


4

抱歉。通配符用于字符串中,不幸的是,列名周围的双引号并不意味着它是字符串。列名称是“标识符”,我认为它基本上是对象名称,但我不是专家。这并不意味着没有办法完成您要问的事情,但这不会在现场计算器中发生。


谢谢Zack,我了解列/字段是“标识符”,如果他们可以以某种方式包含它,那将是很好的。无论如何,我现在都会接受这个答案:)
约瑟夫(Joseph)

6

通过QGIS 2.8中引入的功能编辑器,可以遍历字段名称并执行某种分析:

from qgis.core import *
from qgis.gui import *

@qgsfunction(args='auto', group='Custom')
def fields(feature, parent):
    layer = qgis.utils.iface.activeLayer()
    field_names = [field.name() for field in layer.fields()]
    for name in field_names:
        if "some_name" in name:
            # Do something
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.