เลือกคำถามยอดนิยมใน ArcGIS Desktop หรือไม่


12

มีวิธีการใช้ SELECT TOP (n) ในเดสก์ท็อป ArcGIS หรือไม่? ปรากฏว่าเนื่องจากตัวสร้างแบบสอบถาม ArcGIS สร้างคำสั่ง SQL ได้อย่างมีประสิทธิภาพหลังจากส่วนคำสั่ง WHERE ซึ่งอาจเป็นไปไม่ได้

นี่คือตัวอย่างการใช้งานSQL ทั่วไป :

SELECT TOP 3 * จาก Layer


2
โปรดทราบว่าไม่รองรับ TOP และ LIMIT ในฐานข้อมูลgeod ของ
blah238

คำตอบ:


10

หากฐานข้อมูลของคุณรองรับการสืบค้นย่อยคุณสามารถสร้างการสืบค้นด้วย TOP N ที่ส่งคืน ObjectIds (หรือฟิลด์อื่น ๆ ) และใช้ในการสืบค้นคำจำกัดความของคุณ

OBJECTID IN (*query here*)

ตัวอย่างเช่นนี่คือแบบสอบถาม SQL Server สำหรับการเลือกแบบสุ่ม 20 อันดับแรก: ป้อนคำอธิบายรูปภาพที่นี่

แบบสอบถามด้านบนจะส่งคืนแถวที่แตกต่างกัน 20 แถวในแต่ละครั้งที่รีเฟรชแผนที่หรือตารางแอตทริบิวต์ สิ่งนี้อาจเป็นประโยชน์สำหรับเรื่องตลกเชิงปฏิบัติของ ArcMap สำหรับผู้ใช้ที่มีประสบการณ์น้อย (April Fools อยู่ห่างออกไปไม่ถึงหนึ่งเดือน)

แน่นอนคิวรีย่อยไม่จำเป็นต้องเป็นคิวรี N อันดับต้น ๆ และคุณไม่จำเป็นต้องใช้รหัสเฉพาะ อาจใช้แบบสอบถามเพื่อค้นหารายการที่ซ้ำกัน:

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


ดี! ฉันสามารถเห็นสิ่งนี้ให้ยกเค้าปัญหากับผู้ใช้บางคน .. "คุณทำอะไรกับฐานข้อมูล ???"
George Silva

1
ในขณะที่ฉันหวังว่าฉันจะสามารถทำสิ่งนี้ด้วยรูปร่างที่ดูเหมือนว่าฉันไม่สามารถ อย่างไรก็ตามสิ่งนี้ดูเหมือนจะเป็นวิธีที่ดีมากในการแก้ไขปัญหาเมื่อมีการเรียกข้อมูลจากแหล่งข้อมูล SQL ที่สนับสนุนคิวรี SELECT TOP ขอบคุณ
RyanKDalton

1
คุณสามารถใช้คิวรีดังกล่าวภายในเคียวรีนิยามได้ แต่มีวิธีแก้ไขปัญหาใดบ้างที่จะใช้คิวรีเหล่านั้นในเครื่องมือเลือกตามคุณสมบัติ มีส่วนที่เลือกไว้ล่วงหน้านี้แล้ว
Alex Tereshenkov
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.