SELECT TOP query no ArcGIS Desktop?

12

Existe uma maneira de usar um SELECT TOP (n) na área de trabalho do ArcGIS? Parece que, como o construtor de consultas do ArcGIS está efetivamente construindo a instrução SQL após a cláusula WHERE, isso pode não ser possível.

Aqui está um exemplo típico de SQL de uso:

SELECIONE O TOP 3 * DA Camada

RyanKDalton
fonte
2
Note-se que TOP e LIMIT não são suportados em geodatabases de arquivo: forums.arcgis.com/threads/68997-TOP-100
blah238

Respostas:

10

Se o banco de dados subjacente suportar subconsultas, você poderá criar uma consulta com um TOP N que retorne ObjectIds (ou qualquer outro campo) e usá-lo em sua consulta de definição.

OBJECTID IN (*query here*)

Por exemplo, aqui está uma consulta do SQL Server para uma seleção aleatória TOP 20: insira a descrição da imagem aqui

A consulta acima retornará 20 linhas diferentes toda vez que a tabela de mapa ou atributo for atualizada. Isso também pode ser útil para uma piada prática do ArcMap para usuários menos experientes (o April Fools está a menos de um mês).

Obviamente, a subconsulta não precisa ser uma consulta TOP N nem é necessário usar um ID exclusivo. Talvez faça uma consulta para encontrar duplicatas:

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

Jay Cummins
fonte
legais! Eu posso ver isso causando muitos problemas para alguns usuários .. "o que você fez no banco de dados ???"
George Silva
1
Enquanto eu realmente esperava poder fazer isso com os shapefiles, parece que não posso. No entanto, essa parece ser uma maneira muito boa de resolver o problema ao chamar dados de uma fonte de dados SQL que ofereça suporte a consultas SELECT TOP. Obrigado.
RyanKDalton
1
Você pode usar essas consultas na consulta Definição, mas existe alguma solução alternativa para usá-las na ferramenta Selecionar por Atributo? Ele já possui essa parte SELECT FROM pré-preenchida.
Alex Tereshenkov