ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS for Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

Справка

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Больше...

Определение запроса в Python

  • Использование AddFieldDelimiters в выражении SQL

Язык структурированных запросов (SQL) является мощным языком, который используется для определения одного и более критериев, которые состоят из атрибутов, операторов и вычислений. Например, представьте, что у вас есть таблица с данными о клиентах, и вы хотите найти тех, кто потратил более 50000 долларов за последний год и владеет ресторанным бизнесом. Клиентов можно выбрать с помощью такого выражения: "Sales > 50000 AND Business_type = 'Restaurant'".

Если запрос выбран для курсора обновления или поиска, будут возвращены записи, соответствующие этому запросу. Запрос SQL представляет собой поднабор запросов одной таблицы, который можно выполнить в таблице базы данных SQL, использовав выражение SQL SELECT. Синтаксис, используемый для определения выражения WHERE, такой же, как и для основной базы данных, в которой находятся данные.

В приведенном ниже примере выполняется фильтрация строк курсора поиска, с целью нахождения дорог лишь выбранного класса.

import arcpy

fc = "D:/St_Johns/data.gdb/roads"

# Create a search cursor using an SQL expression
#
cursor = arcpy.da.SearchCursor(fc, ("roadclass", "name"), """"roadclass" = 2""")
for row in cursor:
    # Print the name of the residential road
    #
    print(row[1])
Подсказка:

В Python построение выражений, выделенные тройными кавычками, облегчает их чтение.

Использование AddFieldDelimiters в выражении SQL

Ограничители поля в выражении SQL отличаются в зависимости от формата запрашиваемых данных. Например, в базах геоданных и шейп-файлах используются двойные кавычки (" "), в персональных базах геоданных используются квадратные скобки ([ ]), а в базах геоданных ArcSDE ограничители поля не используются вообще. Функция AddFieldDelimiters может слегка упростить работу, обеспечив использование правильных ограничителей поля в выражении SQL. В следующем примере показано добавление соответствующих ограничителей поля для выражения SQL.

import arcpy

fc = "D:/St_Johns/data.gdb/roads"
fieldname = "roadclass"

# Create field name with the proper delimiters
#
whereclause = """{} = 2""".format(arcpy.AddFieldDelimiters(fc, fieldname))

# Create a search cursor using an SQL expression
#
cursor = arcpy.da.SearchCursor(fc, ("roadclass", "name"), whereclause)

for row in cursor:
    # Print the name of the residential road
    print(row[1])

Связанные разделы

  • Доступ к данным с помощью курсоров

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2019 Esri. | Конфиденциальность | Правовая информация