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

サマリー

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

使用法

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

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

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

  • 選択の適用時、レコード数がゼロの選択になる場合があります。 たとえば、存在しないフィールド値を選択すると、結果はレコード数がゼロの選択になります。 入力としてレイヤーを使用するジオプロセシング ツールは、入力のレコードを使用しません。

  • SQL 式で使用されるフィールド区切り文字は、検索されるデータの形式によって異なります。 たとえば、ファイル ジオデータベースおよびシェープファイルは二重引用符を使用し、エンタープライズ ジオデータベースはフィールド区切り文字を使用しません。 AddFieldDelimiters 関数を使用して、SQL 式で使用されるフィールド区切り文字が正しいことを確認できます。

  • 入力のデータ ソースがフィーチャ サービスの場合は、基になる ArcGIS Server標準化された SQL クエリを使用することをお勧めします。

パラメーター

ラベル説明データ タイプ
入力行

選択を適用するデータ。

Table View; Raster Layer; Mosaic Layer
選択するタイプ
(オプション)

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

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

レコードのサブセットを選択するために使用する SQL 式。

SQL Expression
WHERE 句の反転
(オプション)

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

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

派生した出力

ラベル説明データ タイプ
更新されたレイヤーまたはテーブル ビュー

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

Table View; Raster Layer; Feature Layer
個数

選択したレコードの数。

Long

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選択が切り替えられます。 選択されたすべてのレコードが現在の選択から削除され、選択されなかったすべてのレコードが現在の選択に追加されます。 このオプションが指定されている場合、where_clause パラメーターは無視されます。
  • CLEAR_SELECTION選択が解除または削除されます。 このオプションが指定されている場合、where_clause パラメーターは無視されます。
String
where_clause
(オプション)

レコードのサブセットを選択するために使用する SQL 式。

SQL Expression
invert_where_clause
(オプション)

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

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

派生した出力

名前説明データ タイプ
out_layer_or_view

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

Table View; Raster Layer; Feature Layer
count

選択したレコードの数。

Long

コードのサンプル

SelectLayerByAttribute の例 1 (Python ウィンドウ)

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

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

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

# Name: ExtractFeaturesByLocationAndAttribute.py
# Description: Extract features to a new feature class based on a spatial 
# relationship 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.management.SelectLayerByLocation('cities', 'INTERSECT', 
                                                          'chihuahua', 0, 
                                                          'NEW_SELECTION')

# Within selected features, further select only those cities with a 
# population > 10,000   
arcpy.management.SelectLayerByAttribute(chihuahua_cities, 'SUBSET_SELECTION', 
                                        '"population" > 10000')

# Write the selected features to a new feature class
arcpy.management.CopyFeatures(chihuahua_cities, 'chihuahua_10000plus')

環境

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

関連トピック