SELECT TOP-Abfrage in ArcGIS Desktop?

12

Gibt es eine Möglichkeit, ein SELECT TOP (n) in ArcGIS Desktop zu verwenden? Dies ist möglicherweise nicht möglich, da der ArcGIS-Abfrage-Generator die SQL-Anweisung nach der WHERE-Klausel erstellt.

Hier ist ein typisches SQL- Anwendungsbeispiel:

WÄHLEN SIE TOP 3 * AUS Layer

RyanKDalton
quelle
2
Beachten Sie, dass TOP und LIMIT in File- Geodatabases
blah238

Antworten:

10

Wenn Ihre zugrunde liegende Datenbank Unterabfragen unterstützt, können Sie eine Abfrage mit einem TOP N erstellen, der ObjectIds (oder ein anderes Feld) zurückgibt, und diese in Ihrer Definitionsabfrage verwenden.

OBJECTID IN (*query here*)

Beispiel: Hier ist eine SQL Server-Abfrage für eine zufällige TOP 20-Auswahl: Bildbeschreibung hier eingeben

Die obige Abfrage gibt bei jeder Aktualisierung der Karte oder Attributtabelle 20 verschiedene Zeilen zurück. Dies könnte sich auch als nützlich für einen ArcMap-Scherz für weniger erfahrene Benutzer erweisen (der Aprilscherz ist weniger als einen Monat entfernt).

Natürlich muss die Unterabfrage keine TOP N-Abfrage sein, und Sie müssen auch keine eindeutige ID verwenden. Vielleicht eine Abfrage aufarbeiten, um Duplikate zu finden:

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

Jay Cummins
quelle
nett! Ich kann sehen, dass dies einigen Benutzern Probleme bereitet. "Was haben Sie mit der Datenbank gemacht?"
George Silva
1
Während ich wirklich gehofft hatte, dass ich dies mit Shapefiles tun könnte, scheint es, dass ich es nicht kann. Dies scheint jedoch eine sehr gute Möglichkeit zu sein, das Problem zu lösen, wenn Daten aus einer SQL-Datenquelle aufgerufen werden, die SELECT TOP-Abfragen unterstützt. Vielen Dank.
RyanKDalton
1
Sie können solche Abfragen in der Definitionsabfrage verwenden. Gibt es jedoch eine Problemumgehung, um sie im Tool "Nach Attributen auswählen" zu verwenden? Dieser SELECT FROM-Teil ist bereits ausgefüllt.
Alex Tereshenkov