QGIS Field Calculatorの列ヘッダーにワイルドカードを使用していますか?


10

(フィールド計算機で)そのようなフィールドにワイルドカードを使用できることを知っています:

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

列ヘッダー自体にも同様のことができますか?

Joinsプロパティを使用して)複数のレイヤーを結合しているため、列名に結合されたレイヤー名を含める必要があるため、複数のフィルターを編集するよりも1セットのフィルターを編集する方が簡単なので、これを質問します。

QGIS 2.2を使用しています。

回答:


4

ごめんなさい。ワイルドカードは文字列で使用するためのものであり、残念ながら列名を二重引用符で囲んでも、それが文字列であることを意味するわけではありません。列名は「識別子」で、基本的にはオブジェクト名だと思いますが、私は専門家ではありません。それはあなたが求めていることをする方法がないという意味ではありませんが、フィールド電卓では起こりません。


ザックに感謝します。列/フィールドが「識別子」であることを理解しています。何らかの形で含めることができればすばらしいと思います。とりあえず今のところこの回答を受け入れます:)
ジョセフ

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.