QGISフィールド計算機で検索と置換を実行しますか?


8

たとえば、属性テーブルで選択した文字列値を置き換えようとしています。「Text2」の場合は「Text1」(QGIS 1.8.0)、NULL値を持つ行の場合は特別です。私は無理にreplace式(および私が見つけた他の式)を使用しようとしています。

今後使用できるワイルドカード文字はありますか?


1
記載されているようにもREGEXP_REPLACE()関数をチェックgis.stackexchange.com/questions/40637/...
アンダーダーク

collumn1とcollumn 2によって作成されたマトリックスに基づいてcollumn1を置き換える場合は、次のようになります。collumn2の各値に対して、10桁の100の異なる組み合わせを持つcollumn1(10x10 = 100-マトリックス)(合計:1000置換)。Collumn2は「1から10」まで変化します。collumn2の各値について、私はこれらの2つのマトリックス値内の置換を必要とします。![ここに画像の説明を入力 ](i.stack.imgur.com/GnGU6.png
Rui

回答:


11

あなたは式のときにケースを試すことができます:

case when "Column_1" is NULL then  replace("Column_2",'Text2','Text1') else "Column_2" end

「または」式を使用して、NULL値を持つ複数の列をコードに追加できます。

case when "Column_1" is NULL or "Column_3" is NULL then  replace("Column_2",'Text2','Text1') else "Column_2" end

編集:

NULLを置き換える場合は、replace-expressionを忘れてください(これは文字列に対してのみ機能し、NULLは文字列ではありません)。この正確なコードを試してください:

case when "Feature" is NULL then '12_1' else "Feature" end

迅速な返信ありがとうございます。新しいフィールドを作成するのではなく、単にフィールドの値を更新したい場合、「case when」式はどのように機能しますか?
mastorey

「新しいフィールドの作成」を選択する代わりに、フィールド計算機で必要なフィールドを選択するだけです。コードは同じままです。
GR_

再度、感謝します。問題は、私の属性テーブルにフィールドが1つしかないという事実にあるのではないかと思います。選択したポリゴンの値を更新しようとしています。つまり、NULL値から単一の英数字タグに更新しています。以前のQGISリリースの「検索と置換」機能には何が起こったのでしょうか。
mastorey

1
これはトリックを実行する必要があります。「Column_1」がNULLの場合は「Text1」、それ以外の場合は「Column_1」が終了
GR_

おかげで、私はまだ属性テーブルに変更を加えていません。あなたが提案したコードに基づいて、私は次のように入力します: "Feature"がNULLの場合はreplace( "Feature"、 'NULL'、 '12_1')else "Feature" end私も表現しようとしましたNULLと 'NULL'および ''の両方として成功しません。それ以上の助けは大歓迎であり、最も感謝されます。
mastorey

-2

「Feature」が「TEXT 1」の場合は「TEXT 2」、それ以外は「Feature」の場合

私のために働きなさい。NULL値の解釈は問題を引き起こすようです。考えられる解決策の1つは、NULL以外のニュートラル値でテーブルを初期化することです。


2
これを拡張して、ワイルドカードに関する質問への回答を説明してください。
MaryBeth 2017年

まあ、NULLは空のフィールドの単なる置き換えです。問題は、「フィールド電卓」を使用するときにQGISがNULL値をどのように認識するかです。NULLまたは空のフィールド ''として。
Panait Valentin 2017

しかし、空のフィールドで ''はブール演算を実行できません。これは最大の問題です。
Panait Valentin 2017

"GridRef"がNULLの場合は0、それ以外の場合は "GridRef"終了-最後に機能しました。しかし、なぜ...聞かないでください;)))
パナイトバレンティン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.