¿SELECCIONAR la consulta SUPERIOR en ArcGIS Desktop?

12

¿Hay alguna manera de usar SELECT TOP (n) dentro del escritorio de ArcGIS? Parece que, dado que el generador de consultas ArcGIS está creando efectivamente la instrucción SQL después de la cláusula WHERE, es posible que esto no sea posible.

Aquí hay un ejemplo típico de uso de SQL :

SELECCIONE EL TOP 3 * DE LA CAPA

RyanKDalton
fuente
2
Tenga en cuenta que TOP y LIMIT no son compatibles con las geodatabases de archivos: forums.arcgis.com/threads/68997-TOP-100
blah238

Respuestas:

10

Si su base de datos subyacente admite subconsultas, puede crear una consulta con un TOP N que devuelva ObjectIds (o cualquier otro campo) y usarla en su consulta de definición.

OBJECTID IN (*query here*)

Por ejemplo, aquí hay una consulta de SQL Server para una selección aleatoria TOP 20: ingrese la descripción de la imagen aquí

La consulta anterior devolverá 20 filas diferentes cada vez que se actualice el mapa o la tabla de atributos. Esto también podría ser útil para una broma práctica de ArcMap para usuarios menos experimentados (April Fools está a menos de un mes).

Por supuesto, la subconsulta no tiene que ser una consulta TOP N ni necesita usar una identificación única. Tal vez elaborar una consulta para encontrar duplicados:

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

Jay Cummins
fuente
¡bonito! Puedo ver esto dando muchos problemas a algunos usuarios ... "¿qué le hiciste a la base de datos?"
George Silva
1
Si bien realmente esperaba poder hacer esto con shapefiles, parece que no puedo. Sin embargo, esta parece ser una muy buena forma de resolver el problema cuando se llaman datos desde una fuente de datos SQL que admite consultas SELECT TOP. Gracias.
RyanKDalton
1
Puede usar tales consultas dentro de la consulta Definición, pero ¿hay alguna solución alternativa para usarlas dentro de la herramienta Seleccionar por atributo? Ya tiene esta parte SELECCIONAR DE rellenada previamente.
Alex Tereshenkov