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

概要

属性検索に基づいて、選択を追加、更新、または削除します。

使用法

  • 入力がフィーチャクラスまたはデータセット パスの場合、このツールは、ツールの結果が適用された新しいレイヤーを自動的に作成して返します。

  • 入力のデータ ソースがフィーチャ サービスの場合は、ArcGIS Server標準化された SQL クエリを使用することが推奨事項となります。

  • 入力にフィルター設定が存在する場合、そのフィルター設定に整合するフィーチャまたは行のみが選択で使用されます。

  • [平均以上] クエリと [平均以下] クエリを使用すると、入力レイヤーがソース データのサブセットである場合でも、AVG 関数がソース データに対して常に実行されます。

  • 選択したレコードの数は、[ジオプロセシング履歴] で、[パラメーター] > [個数] の下にリストされます。さらに、[行のカウント (Get Count)] ツールを使用して、選択したレコードの数をカウントできます。Python の場合、選択したレコードの数は、ツールの Result オブジェクトからアクセスすることもできます。

構文

arcpy.management.SelectLayerByAttribute(in_layer_or_view, {selection_type}, {where_clause}, {invert_where_clause})
パラメーター説明データ タイプ
in_layer_or_view

選択を適用するデータ。

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

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

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

レコードのサブセットを選択するために使用する SQL 式。SQL 構文の詳細については、「ArcGIS で使用されるクエリ式への SQL リファレンス」をご参照ください。

SQL Expression
invert_where_clause
(オプション)

式がそのまま使用されるか、逆の式が使用されるかを指定します。

  • NON_INVERTクエリがそのまま使用されます。これがデフォルトです。
  • INVERT逆のクエリが使用されます。selection_type パラメーターを使用すると、選択フィーチャが既存のフィーチャと統合される前に選択が反転します。
Boolean

派生した出力

名前説明データ タイプ
out_layer_or_view

選択が適用された状態の更新された入力。

テーブル ビュー; ラスター レイヤー; フィーチャ レイヤー
count

選択したレコードの数。

Long

コードのサンプル

SelectLayerByAttribute (属性検索) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、イミディエイト モードで SelectLayerByAttribute 関数を使用する方法を示しています。

import arcpy
arcpy.SelectLayerByAttribute_management("states", "NEW_SELECTION", 
                                        "[NAME] = 'California'")
SelectLayerByAttribute (属性検索) の例 2 (スタンドアロン スクリプト)

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

# Name: ExtractFeaturesByLocationAndAttribute.py
# Description: Extract features to a new feature class based on a spatial 
# relationships to another layer, and an attribute query
# Import system modules
import arcpy
# Set the workspace
arcpy.env.workspace = 'c:/data/mexico.gdb'
# Select all cities that overlap the chihuahua polygon
chihuahua_cities = arcpy.SelectLayerByLocation_management('cities', 'INTERSECT', 
                                                          'chihuahua', 0, 
                                                          'NEW_SELECTION')
# Within selected features, further select only those cities with a 
# population > 10,000   
arcpy.SelectLayerByAttribute_management(chihuahua_cities, 'SUBSET_SELECTION', 
                                        '"population" > 10000')
# Write the selected features to a new feature class
arcpy.CopyFeatures_management(chihuahua_cities, 'chihuahua_10000plus')

環境

このツールは、ジオプロセシング環境を使用しません。

ライセンス情報

  • Basic: はい
  • Standard: はい
  • Advanced: はい

関連トピック