SELECT TOP query dans ArcGIS Desktop?

12

Existe-t-il un moyen d'utiliser un SELECT TOP (n) dans le bureau ArcGIS? Il semble que, puisque le générateur de requêtes ArcGIS génère effectivement l'instruction SQL après la clause WHERE, cela peut ne pas être possible.

Voici un exemple typique d'utilisation SQL :

SÉLECTIONNEZ LE TOP 3 * DU CALQUE

RyanKDalton
la source
2
Notez que TOP et LIMIT ne sont pas pris en charge dans les géodatabases fichier: forums.arcgis.com/threads/68997-TOP-100
blah238

Réponses:

10

Si votre base de données sous-jacente prend en charge les sous-requêtes, vous pouvez créer une requête avec un TOP N qui renvoie des ObjectIds (ou tout autre champ) et l'utiliser dans votre requête de définition.

OBJECTID IN (*query here*)

Par exemple, voici une requête SQL Server pour un TOP 20, sélection aléatoire: entrez la description de l'image ici

La requête ci-dessus renverra 20 lignes différentes chaque fois que la carte ou la table attributaire est actualisée. Cela pourrait également être utile pour une blague pratique ArcMap pour les utilisateurs moins expérimentés (April Fools est à moins d'un mois).

Bien sûr, la sous-requête ne doit pas nécessairement être une requête TOP N et vous n'avez pas besoin d'utiliser un identifiant unique. Peut-être élaborer une requête pour trouver des doublons:

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

Jay Cummins
la source
agréable! Je peux voir cela donner un tas de problèmes à certains utilisateurs .. "Qu'avez-vous fait à la base de données ???"
George Silva
1
Alors que j'espérais vraiment pouvoir le faire avec des fichiers de formes, il semble que je ne puisse pas. Cependant, cela semble être un très bon moyen de résoudre le problème lors de l'appel de données à partir d'une source de données SQL qui prend en charge les requêtes SELECT TOP. Merci.
RyanKDalton
1
Vous pouvez utiliser de telles requêtes dans la requête Définition, mais existe-t-il une solution de contournement pour les utiliser dans l'outil Sélectionner par attribut? Il a déjà cette partie SELECT FROM pré-remplie.
Alex Tereshenkov