属性検索(Select Layer By Attribute) (データ管理)

ライセンス レベル:BasicStandardAdvanced

サマリ

属性検索に基づいて、レイヤまたはテーブル ビューでの選択を追加、更新、または削除します。

使用法

構文

SelectLayerByAttribute_management (in_layer_or_view, {selection_type}, {where_clause})
パラメータ説明データ タイプ
in_layer_or_view

選択するフィーチャ レイヤまたはテーブル ビュー。

入力として、ArcMap のコンテンツ ウィンドウのレイヤまたはテーブル ビュー、または [フィーチャ レイヤの作成(Make Feature Layer)] や [テーブル ビューの作成(Make Table View)] ツールを使って ArcCatalog またはスクリプトに作成されたレイヤまたはテーブル ビューを指定できます。

Table View; Raster Layer; Mosaic Layer
selection_type
(オプション)

どのように選択を適用するか、選択がすでに存在する場合にはそれをどうするかを決定します。

  • NEW_SELECTION結果として得られる選択によって、既存の選択が置換されます。これがデフォルトです。
  • ADD_TO_SELECTION選択が存在する場合、結果として得られる選択が既存の選択に追加されます。選択が存在しない場合は、NEW_SELECTION オプションと同じです。
  • REMOVE_FROM_SELECTION結果として得られる選択が、既存の選択から削除されます。選択が存在しない場合、このオプションは影響を与えません。NEW_SELECTION オプションと同じです。
  • SUBSET_SELECTION結果として得られる選択が、既存の選択に統合されます。両方に共通のレコードだけが選択された状態となります。
  • SWITCH_SELECTION選択を切り替えます。選択されたすべてのレコードが選択から削除され、選択されなかったすべてのレコードが選択に追加されます。このオプションが指定されている場合、条件式は無視されます。
  • CLEAR_SELECTION選択を消去または削除します。このオプションが指定されている場合、条件式は無視されます。
String
where_clause
(オプション)

レコードのサブセットを選択するために使用する SQL 式。この式の構文はデータ ソースによって多少異なります。たとえば、クエリ対象がファイル ジオデータベース、ArcSDE ジオデータベース、シェープファイル、カバレッジ、dBASE、または INFO テーブルの場合は、次のようにフィールド名を二重引用符で囲みます。

"MY_FIELD"

クエリ対象がパーソナル ジオデータベースの場合は、以下のようにフィールドを角括弧で囲みます。

[MY_FIELD]

Python では、文字列を単一引用符または二重引用符で囲みます。SQL 式の WHERE 句などで通常行われるように、引用符を含む文字列を作成する場合は、引用符を円記号(\)でエスケープするか、文字列を三重引用符で囲みます。たとえば、次のような WHERE 句を記述する場合、

"CITY_NAME" = 'Chicago'

次のように文字列全体を二重引用符で囲み、内部の二重引用符をエスケープします。

" \"CITY_NAME\" = 'Chicago' "

または、次のように文字列全体を単一引用符で囲み、内部の単一引用符をエスケープします。

' "CITY_NAME" = \'Chicago\' '

あるいは、次のようにエスケープしないで文字列全体を三重引用符で囲みます。

""" "CITY_NAME" = 'Chicago' """

SQL 構文の詳細とデータ ソースによる違いについては、ヘルプ トピックの「ArcGIS で使用されるクエリ式への SQL リファレンス」をご参照ください。

SQL Expression

コードのサンプル

Select Layer By Attribute(属性検索)の例(Python ウィンドウ)

次の Python ウィンドウ スクリプトは Select Layer By Attribute(属性検索)関数をイミディエイト モードで使用する方法を、例を挙げて示したものです。

import arcpy
arcpy.MakeFeatureLayer_management ("C:/data/data.mdb/states", "stateslyr")
arcpy.SelectLayerByAttribute_management ("stateslyr", "NEW_SELECTION", " [NAME] = 'California' ")
Select Layer By Attribute(属性検索)の例 2(スタンドアロン スクリプト)

次のスタンドアロン スクリプトは、位置と属性検索に基づいてフィーチャを新しいフィーチャクラスに抽出するために、ワークフローで Select Layer By Attribute(属性検索)関数を使用する方法を示したものです。

# Name: ExtactFeaturesByLocationAndAttribute.py
# Description: Extract features to a new feature class based on a spatial relationships to another layer AND an attribute query
# Author: ESRI
 
# Import system modules
import arcpy

# Set the workspace
env.workspace = "c:/data/mexico.gdb"

# Make a layer from the feature class
arcpy.MakeFeatureLayer_management("cities", "lyr") 
 
# Select all cities which overlap the chihuahua polygon
arcpy.SelectLayerByLocation_management("lyr", "intersect", "chihuahua", 0, "new_selection")

# Within selected features, further select only those cities which have a population > 10,000   
arcpy.SelectLayerByAttribute_management("lyr", "SUBSET_SELECTION", ' "population" > 10000 ')
 
# Write the selected features to a new featureclass
arcpy.CopyFeatures_management("lyr", "chihuahua_10000plus")

環境

関連トピック

ライセンス情報

ArcGIS for Desktop Basic: ○
ArcGIS for Desktop Standard: ○
ArcGIS for Desktop Advanced: ○
9/14/2013