ВЫБРАТЬ ТОП запрос в ArcGIS Desktop?

12

Есть ли способ использовать SELECT TOP (n) на рабочем столе ArcGIS? Похоже, что поскольку построитель запросов ArcGIS эффективно строит оператор SQL после предложения WHERE, это может оказаться невозможным.

Вот типичный пример использования SQL :

ВЫБЕРИТЕ ТОП 3 * ИЗ СЛОЯ

RyanKDalton
источник
2
Обратите внимание, что TOP и LIMIT не поддерживаются в файловых базах
blah238

Ответы:

10

Если ваша базовая база данных поддерживает подзапросы, вы можете создать запрос с TOP N, который возвращает ObjectIds (или любое другое поле), и использовать его в своем запросе определения.

OBJECTID IN (*query here*)

Например, вот запрос SQL Server для TOP 20, случайный выбор: введите описание изображения здесь

Приведенный выше запрос будет возвращать 20 разных строк каждый раз, когда обновляется карта или таблица атрибутов. Это также может пригодиться для практической шутки ArcMap для менее опытных пользователей (до апреля осталось меньше месяца).

Конечно, подзапрос не должен быть запросом TOP N, и вам не нужно использовать уникальный идентификатор. Может быть, обработать запрос, чтобы найти дубликаты:

FIRE_ID IN (SELECT FIRE_ID
FROM [SandboxGeodb].[dbo].[TESTFEATURECLASS] GROUP BY FIRE_ID HAVING COUNT(FIRE_ID) > 1)

Джей Камминс
источник
красивый! Я вижу, что это доставляет массу неприятностей некоторым пользователям ... "что вы сделали с базой данных ???"
Джордж Сильва
1
Хотя я действительно надеялся, что смогу сделать это с помощью шейп-файлов, похоже, я не могу. Однако это, кажется, очень хороший способ решения проблемы при вызове данных из источника данных SQL, который поддерживает запросы SELECT TOP. Благодарю.
RyanKDalton
1
Вы можете использовать такие запросы в запросе Definition, но есть ли обходной путь для их использования в инструменте Select by Attribute? У него уже есть эта часть SELECT FROM, предварительно заполненная.
Алекс Терешенков