ArcGISは、フィールドの特定の部分にある特定の文字をクエリします


9

ArcGIS 10.2.2を使用して、SDE属性テーブルに文字列フィールドがあります。フィールドの6番目と7番目の文字(つまり1995-0023A)にゼロが含まれるすべてのレコードを選択するクエリを作成するのに助けが必要です。このタイプのクエリをよりよく理解するために、フィールドの6文字目だけがゼロであるレコードを選択するクエリも確認できるようにしたいと思います。次に、「and」句を使用して複製し、7番目の文字も選択できます。

のバリエーションを試しました "FIELD1" LIKE '%00_______'が、文字列の正しい位置に二重のゼロがあるレコードは選択されません。


"FIELD1" LIKE '%00 _______'のバリエーションを試しましたが、文字列の正しい位置に二重のゼロがあるレコードは選択されません。
スティーブ

のようなもの"FIELD1" LIKE '_____00%'?それは5文字のワイルドカードを使用し、次に2つのゼロを使用し、残りの文字列には別のワイルドカードを使用します。これらはどのタイプのデータベースですか?SQL Server、Oracle、他に何かありますか?してください編集あなたの質問上記のあなたのコメントからの情報、およびデータベースの詳細を含むように(バージョン・リリースなど)
Midavalo

"field_name" LIKE '%00%'これは、2つのゼロが隣り合っているすべてのフィールドを返します。これが役立つ場合、6番目または7番目の位置を使用しません。
NULL.Dude

_一部のデータベースでは、アンダースコアが1文字のワイルドカードとして使用されています。パーセント%は、すべての文字の場所のワイルドカードです。
ミダバロ

1
みんなありがとう、私はクエリを逆にしたようです。ミダバロの提案は機能しました:FIELD1 LIKE '_____ 00%'。そのOracle DB。
スティーブ

回答:


12

_一部のデータベースでは、アンダースコアが1文字のワイルドカードとして使用されています。パーセント%は、すべての文字の場所のワイルドカードです。

したがって、"FIELD1" LIKE '_____00%'データベースのタイプによっては、のようなものが機能するはずです。それは5文字のワイルドカードを使用し、次に2つのゼロを使用し、残りの文字列には別のワイルドカードを使用します。


これはMS SQL Server DBでも機能しますか?
NULL.Dude

1
@Joeはい、そうする必要があります-SQL Serverで過去に同様のクエリにこのメソッドを使用したことがありますが、現時点ではテストできません。
ミダバロ

3

次の例では、6番目の文字位置と7番目の文字位置にゼロがあるすべてのレコードを選択します。

FIELDNAME like '_____0%' and FIELDNAME like '______0%'

式の最初の部分のゼロの前に5つのアンダースコアがあり、次に2番目の部分のゼロの前に6つのアンダースコアがあります。アンダースコアは「ワイルドカード」であり、任意の文字が必要です(スペース、数字、文字、記号などにすることができます)。パーセント(%)ワイルドカードは、何でもフォローできるようにします(また、何もフォローできないようにします-文字を必要としません)。

これをクエリするより簡潔な方法は

FIELDNAME like '_____00%'

-1

これはRDBMSに依存しますが、ほとんどは次のように機能します。

SUBSTRING(フィールド名、6、2)= '00'


GIS SEへようこそ!新規ユーザーとして、ツアーに参加して、焦点を絞ったQ&A形式について学習してください。この作業は成功しましたか?私の経験でSUBSTRING()は、ArcMapの制限されたSQLでは決して機能しませんでした。これを使用する場所ですか、それとも他の場所で使用しますか?これを拡張するために答えを編集できますか?
ミダバロ

OPによると、これはSDEにあり、ファイルジオデータベース、mdb、シェープファイルではありません。SDEはRDBMSを指示します。ArcMapクエリは、SQLのwhere部分に基づいており、SDEが存在する特定のRDBMSに基づいています(構文が異なる場合があるため、データが含まれているデータベースのタイプを知ることが重要です)。はい、SDE管理者としての20年以上の間にこれを何度も成功させてきました。すべてのRDBMSが「_」オプションを使用するわけではないため、これをオプションとして投入しました。私のソリューションは単純で、間違いなく古いですが、SDE環境で動作します。
CaptRay 2017年

先週これをテストしたのでうまくいかなかったので尋ねました。私はそれを間違えたかもしれませんが、それは私にとってはうまくいきませんでした。
ミダバロ

SDEで?もしそうなら、あなたのSDEはどのRDBMSを使用していますか?RDBMS環境に興味をそそられるので、特に違いが気になるので、本当に気になります。投稿する前にもテストしました(OracleとSQL Serverで成功)。SUBSTRINGはシェープファイルでは無効になります。ファイルジオデータベースで機能します。
CaptRay 2017年

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