FAQ
ArcGIS Pro: 属性検索でよく使用する SQL 条件式

ナレッジ番号:6091 | 登録日:2026/02/26 | 更新日:2026/06/10

概要

この FAQ では、属性検索でよく使用する SQL 条件式をご紹介します。

ArcGIS Pro で属性検索を行う際に、SQL 条件式を利用することができます。SQL 条件式は、属性テーブルまたは [マップ] タブの [属性条件で選択] から [SQL エディター] を有効化することで入力できます。文字列を指定する場合にはシングル クウォーテーションで括ります(例:'文字列')。

属性テーブルから [属性条件で選択] ウィンドウを開く場合

属性テーブル上部の [属性条件で選択] をクリックします。

[マップ] タブから [属性条件で選択] ウィンドウを開く場合

[マップ] タブ → [属性条件で選択] をクリックします。

上記方法で開いた [属性条件で選択] ウィンドウにある [SQL エディター] をオンにすることで有効化できます。

SQL 条件式の例

複数条件の指定 (AND, OR の使用) 
あいまい検索 (LIKE の使用) 
NULL 値の検索 
除外検索 
日付検索 
大文字・小文字を区別しない検索 
サブクエリ―の使用例

複数条件の指定 (AND, OR の使用)

複数の条件をすべて満たす場合は「AND」、いずれか 1 つの条件を満たす場合は「OR」を使用します。

例 (AND):AREA < 1500 AND POP > 5000
例 (OR):AREA < 1500 OR POP > 5000

あいまい検索 (LIKE の使用)

文字列の部分一致検索には、LIKE 演算子を使用します。

前方一致で検索したい場合は、検索文字列の末尾に「%」を、後方一致で検索したい場合は先頭に「%」を付けます。

例:NAME LIKE '%小学校'

また、任意の 1 文字をワイルドカードとして扱いたい場合は、「_(アンダースコア)」を使用します。
以下の例では、NAME フィールドの値が「旭川市」や「大川市」といった「“〇”川市」の場合は検索されますが、「木津川市」や「加古川市」といった「“〇〇”川市」の場合は検索されません。

例:NAME LIKE '_川市'

NULL 値の検索

NULL 値を検索する場合は、フィールド名と「IS」を組み合わせて条件式を作成します。

例:SALES IS NULL

逆に NULL 値以外のものを検索する場合は、フィールド名と「IS NOT」 を組み合わせます。

例:SALES IS NOT NULL

除外検索

フィールド名の前に「NOT」を付けることで、指定した条件を除外できます。

例:NOT (都道府県 = '青森')

または、次のように「<>」を使う方法もよく利用されます。

例:都道府県 <> '青森'

日付検索

日付を格納した日付フィールド タイプのフィールドを検索に用いる場合、年月日だけでなく時刻も指定することが可能です。ただし、シェープファイルには時刻情報を格納できないため、シェープファイルの検索対象は日付のみとなります。※

ファイル ジオデータベース、シェープファイルでのそれぞれの検索方法は以下の通りです。

・ファイル ジオデータベース

①日付のみのフィールド:値の先頭に “date” を付けます。
例:DATE= date '2001-06-13'

②時間のみのフィールド:値の先頭に “time” を付けます。
例:DATE= time '19:30:00'

③日付と時間の両方(日時)を含むフィールド:値の先頭に “timestamp” を付けます。
例:DATE= timestamp '2001-06-13 19:30:00'

・シェープファイル

①日付のみのフィールド:値の先頭に “date” を付けます。
例:DATE= date '2001-06-13'

※ シェープファイルに格納できるデータについては、以下の FAQ をご参照ください。
フィールド タイプの長さ、桁数、精度について

大文字・小文字を区別しない検索

UPPER 関数または LOWER 関数を使用すると、大文字・小文字を区別しない検索ができます。

UPPER 関数では、検索対象の文字列をすべて大文字に変換してから検索します。検索対象の文字列をすべて大文字で指定することで、検索対象の文字列が大文字であっても小文字であっても区別せずに検索できます。
次の条件式を使用すると、Name フィールドに格納されている APPLE、Apple、apple を UPPER 関数ですべて検索できます。

例:UPPER(Name) = 'APPLE'

LOWER 関数では、対象の文字列をすべて小文字に変換してから検索します。検索対象の文字列をすべて小文字で指定することで、検索対象の文字列が大文字であっても小文字であっても区別せずに検索できます。
次の条件式を使用すると、Name フィールドに格納されている APPLE、Apple、apple を LOWER 関数ですべて検索できます。

例:LOWER (Name) = 'apple'

サブクエリーの使用例

サブクエリーは、別のクエリーにネストされたクエリーです。述語または集約関数を適用したり、別のテーブルに保存された値とデータを比較したりするために使用できます。 これには、IN キーワードまたは ANY キーワードを使用します。

サブクエリーについては「ArcGIS で使用されるクエリー式の SQL リファレンス – サブクエリー」をご確認ください。
※ サブクエリーは、ジオデータベースでサポートされています。シェープファイルを含むジオデータベース以外のファイルベースのデータ ソース ( Excel ファイルを除く) では、サブクエリーはサポートされていません。


検索条件:大阪府内で面積が最大のレコードを検索
条件式:Shape_Area = (SELECT MAX ( Shape_Area ) FROM JAPAN WHERE KEN='大阪府')
説明:この条件式では、サブクエリー(括弧内)を使用して、別のテーブル(フィーチャクラス)である「JAPAN」から「KEN = '大阪府'」に該当するレコードの中で最も大きい Shape_Area の値を取得しています。
外側のクエリーでは、検索対象のフィールドである Shape_Area 内の値がサブクエリーで取得した最大値と一致した場合にレコードを選択します。

検索条件:「indep_countries」テーブルの COUNTRY_NAME フィールドに含まれていない値を持つレコードを検索
条件式:COUNTRY_NAME NOT IN (SELECT COUNTRY_NAME FROM indep_countries)
説明:外側の COUNTRY_NAME は検索対象のフィールドです。
サブクエリー(括弧内)では、別のテーブル(フィーチャクラス)である「indep_countries」が持つ COUNTRY_NAME フィールドの値を取得しています。
この条件式は、検索対象の COUNTRY_NAME の値のうち、「indep_countries」テーブルの COUNTRY_NAME に含まれておらず、かつ NULL ではないレコードを選択します。

補足情報

本 FAQ で紹介した条件式の他によく使用される条件式については、「ArcGIS で使用される条件式の SQL リファレンス」をご確認ください。

メタデータ

種類

機能

製品

バージョン