ArcGIS Desktopで文字を含む文字列を検索するためのSQL式?


8

私はArcGIS 9.3.1に取り組んでいます。次のようなポイント名を含む文字列フィールドを持つシェープファイルがあります。

10
12
12/13
t/9
6577y
1234
12t9
124y67
u9

など(そして、はい、それは巨大な混乱のように見えます。それは私のデザインではありません)。使用 WHERE MyColumn LIKE '%Search String%'Iは、(属性によって選択使用して)特定の文字またはバックスラッシュ(/)を含むものを見つけることができます。

文字を含むすべての値(この例では、t / 9、6577y、12t9、124y67、u9)を選択するにはどうすればよいですか?(位置を指定する方法はありますか?)


3
キーボードで頭をたたいて飛び出さなかっただけですか?:P
blah238

1
残念だけど違う。
jonatr 2011

回答:


2

非常に汚いものについては、このようなものを使用して、標準の26文字のアルファベット文字を含むすべてのレコードを検索できます。お気に入りのテキストエディターで検索と置換を使用して、MyColumn名前を実際の列名に変更します。

UPPER("MyColumn") LIKE('%A%') OR
UPPER("MyColumn") LIKE('%B%') OR
UPPER("MyColumn") LIKE('%C%') OR
UPPER("MyColumn") LIKE('%D%') OR
UPPER("MyColumn") LIKE('%E%') OR
UPPER("MyColumn") LIKE('%F%') OR
UPPER("MyColumn") LIKE('%G%') OR
UPPER("MyColumn") LIKE('%H%') OR
UPPER("MyColumn") LIKE('%I%') OR
UPPER("MyColumn") LIKE('%J%') OR
UPPER("MyColumn") LIKE('%K%') OR
UPPER("MyColumn") LIKE('%L%') OR
UPPER("MyColumn") LIKE('%M%') OR
UPPER("MyColumn") LIKE('%N%') OR
UPPER("MyColumn") LIKE('%O%') OR
UPPER("MyColumn") LIKE('%P%') OR
UPPER("MyColumn") LIKE('%Q%') OR
UPPER("MyColumn") LIKE('%R%') OR
UPPER("MyColumn") LIKE('%S%') OR
UPPER("MyColumn") LIKE('%T%') OR
UPPER("MyColumn") LIKE('%U%') OR
UPPER("MyColumn") LIKE('%V%') OR
UPPER("MyColumn") LIKE('%W%') OR
UPPER("MyColumn") LIKE('%X%') OR
UPPER("MyColumn") LIKE('%Y%') OR
UPPER("MyColumn") LIKE('%Z%')

もっと複雑なものについては、代わりにPythonのSearchCursor正規表現を使用するか(モジュールを参照)、実際のデータベースにデータを配置して、その特定の文字列検索機能を使用します。re


2

シェープファイルに整数列を追加し、「MATCH」と呼ぶことを検討する場合があります。次に、フィールド計算機を使用して、プレロジックコードブロックで文字列照合テストを実行します。「一致」フィールドにデータを入力した後、「属性による選択」ツールを使用してフィールドを選択できます。

補足:長い間ですが、INFOがCALCULATEコマンドを使用して選択できる疑似列($ RECSELでしたか?)をサポートしていたようです。この使用例は、そのような何かが役立つ状況を示しています。IMO、Esriはフィールド計算機を拡張して、選択用の疑似列をサポートする必要があります。ユーザーが左端の列のフィールドヘッダーの横にあるラベルのないブロックを右クリックすると、フィールド計算機はブールターゲットフィールドを表示します。

更新:同意する場合は、私のアイデアに投票してください。

ここに画像の説明を入力してください


「プレロジックコードブロックの文字列照合テスト」の意味を指定できますか???
jonatr

フィールド計算機で、「コードブロックを表示」チェックボックスをクリックします。その後、VBA文字列操作関数を使用できるようになります。VBAは10.0で廃止されます。このKB記事を参照してください
カークカイケンダル2011

2

パーソナルジオデータベースに変換します。

ワイルドカード:

  • 疑問符?=任意の英字
  • ポンド記号#=任意の数字

[ポイント名]のように「12?」12A、12b、12cなどを返す必要があります。


0

データがMS-SQLにある場合は、次のような検索式の範囲を試してください。

... where col like '%[a-z]%'

または、次の間に1文字が含まれる文字列の数値:

`... colは '%[az] _ [0-9]%'のように

「-」を探す必要がある場合は、次のように検索文字列の先頭に置きます。

... where col like '%[-a-z0-9]%'

「-」または文字または数字に一致します

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