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

ナレッジ番号:1571 | 登録日:2023/05/29 | 更新日:2023/06/21

属性検索で使用する SQL 条件式の例です。対象のデータソースの種類によってフィールド名の指定方法、表記方法が異なる点にご注意ください。また、文字列を括る際にはシングルクォーテーションを使用します。

パーソナル ジオデータベース ファイル ジオデータベース シェープファイル
[] で括る 括り不要 二重引用符で括る

インデックス

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

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

複数の条件を同時に満たす条件を指定するには AND を使用し、いずれか1つを満たす条件を指定するには OR を使用します。

パーソナル ジオデータベース ファイル ジオデータベース シェープファイル
[AREA] < 1500 AND [POP] > 5000 AREA < 1500 AND POP > 5000 "AREA" < 1500 AND "POP" > 5000

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

LIKE 演算子を使用します。前方一致検索をする場合は対象文字列の末尾に「%」 を、後方一致検索の場合は先頭に「%」を付与します。
ただし任意の1文字だけ置き換える場合は、「?」や「_ (アンダースコア)」を使用します。

パーソナル ジオデータベース ファイル ジオデータベース シェープファイル
[NAME] LIKE '*小学校' NAME LIKE '%小学校' "NAME" LIKE '%小学校'
 [NAME] LIKE '?川市'  NAME LIKE '_川市'  "NAME" LIKE '_川市'

※下段の例の場合、[NAME] の値が旭川市や大川市であれば検索され、木津川市や加古川市だと検索されません。

NULL 値の検索

NULL 値を検索する場合は、フィールド名と値を IS で連結した条件式を作成します。逆に NULL 値以外のものを検索したい場合は 「IS NOT」 を使用します。

パーソナル ジオデータベース ファイル ジオデータベース シェープファイル
[SALES] IS NULL SALES IS NULL "SALES" IS NULL

除外検索 (NOT の使用)

フィールド名の先頭に NOT を追加することで、指定条件の除外ができます。

パーソナル ジオデータベース ファイル ジオデータベース シェープファイル
NOT [都道府県] = '青森' NOT 都道府県 = '青森' NOT "都道府県" = '青森'

日付検索

日付を格納した Date タイプのフィールドを検索に用いる場合、年月日だけでなく時刻も指定することが可能です。ファイル ジオデータベース、シェープファイルの場合は、値の先頭に "date" を付与します。 

パーソナル ジオデータベース ファイル ジオデータベース シェープファイル
[DATE] = #06-13-2001 19:30:00# DATE= date '2001-06-13 19:30:00' "DATE"= date '2001-06-13'

 DATE >= date '2017-04-10 00:00:00' AND DATE <= date '2017-04-30 00:00:00'  "DATE" >= date '2017-04-10 00:00:00' AND "DATE" <= date '2017-04-30 00:00:00'

こちらのFAQにあるとおり、シェープ ファイルでは時刻を格納することができません。

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

ジオデータベースやシェープファイルなどの場合、UPPER 関数または LOWER 関数を使用して、大文字・小文字を指定しない検索ができます。
以下の条件式で検索すると、 [Name] に APPLE, Apple, apple などの値が入力されている場合でも検索できます。

パーソナル ジオデータベース ファイル ジオデータベース シェープファイル
LOWER (Name) = 'apple' LOWER ("Name") = 'apple'

サブクエリの使用例

サブクエリはジオデータベースを対象に設定できるもので、COUNT、MAX などの集合関数や、IN や EXISTS のような述語などを使用した検索条件式を設定することができます。

サブクエリについてはこちらのヘルプでご確認いただけます。

説明 条件式
大阪府内で最も面積が最大のレコードを検索 Shape_Area = (SELECT MAX ( Shape_Area ) FROM JAPAN WHERE KEN='大阪府')
indep_countries テーブルに含まれていないフィーチャを検索 "COUNTRY_NAME" NOT IN (SELECT "COUNTRY_NAME" FROM indep_countries)

補足情報

ヘルプではよく使用する SQL リファレンスが公開されています。
「ArcGIS で使用される条件式の SQL リファレンス」 (ArcGIS Desktop)
「ArcGIS で使用される条件式の SQL リファレンス」 (ArcGIS Pro)

メタデータ

カテゴリ

製品

バージョン