CHỌN truy vấn HÀNG ĐẦU trong ArcGIS Desktop?


12

Có cách nào để sử dụng CHỌN HÀNG ĐẦU (n) trong máy tính để bàn ArcGIS không? Có vẻ như vì trình xây dựng truy vấn ArcGIS đang xây dựng câu lệnh SQL một cách hiệu quả sau mệnh đề WHERE, nên điều này có thể không thực hiện được.

Dưới đây là một ví dụ điển hình về việc sử dụng SQL :

CHỌN TOP 3 * TỪ lớp


2
Lưu ý rằng TOP và LIMIT không được hỗ trợ trong cơ sở dữ liệu địa lý tệp: forum.arcgis.com/threads/68997-TOP-100
blah238

Câu trả lời:


10

Nếu cơ sở dữ liệu cơ sở của bạn hỗ trợ các truy vấn phụ, bạn có thể xây dựng một truy vấn với TOP N trả về ObjectIds (hoặc bất kỳ trường nào khác) và sử dụng truy vấn đó trong truy vấn định nghĩa của bạn.

OBJECTID IN (*query here*)

Ví dụ: đây là truy vấn SQL Server cho TOP 20, lựa chọn ngẫu nhiên: nhập mô tả hình ảnh ở đây

Truy vấn trên sẽ trả về 20 hàng khác nhau mỗi khi bảng bản đồ hoặc thuộc tính được làm mới. Điều này cũng có thể có ích cho một trò đùa thực tế ArcMap cho người dùng ít kinh nghiệm (Cá tháng tư chỉ còn chưa đầy một tháng nữa).

Tất nhiên, truy vấn phụ không nhất thiết phải là truy vấn TOP N và bạn không cần sử dụng id duy nhất. Có thể tạo ra một truy vấn để tìm các bản sao:

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


đẹp! Tôi có thể thấy điều này mang đến một rắc rối cho một số người dùng .. "bạn đã làm gì với cơ sở dữ liệu ???"
George Silva

1
Trong khi tôi thực sự hy vọng tôi có thể làm điều này với shapefiles, thì có vẻ như tôi không thể. Tuy nhiên, đây có vẻ là một cách rất tốt để giải quyết vấn đề khi gọi dữ liệu từ nguồn dữ liệu SQL hỗ trợ các truy vấn CHỌN HÀNG ĐẦU. Cảm ơn.
RyanKDalton

1
Bạn có thể sử dụng các truy vấn như vậy trong truy vấn Định nghĩa, nhưng có cách giải quyết nào để sử dụng chúng trong công cụ Chọn theo Thuộc tính không? Nó đã có CHỌN TỪ phần này được điền trước.
Alex Tereshenkov
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.