มีวิธีการใช้ SELECT TOP (n) ในเดสก์ท็อป ArcGIS หรือไม่? ปรากฏว่าเนื่องจากตัวสร้างแบบสอบถาม ArcGIS สร้างคำสั่ง SQL ได้อย่างมีประสิทธิภาพหลังจากส่วนคำสั่ง WHERE ซึ่งอาจเป็นไปไม่ได้
นี่คือตัวอย่างการใช้งานSQL ทั่วไป :
SELECT TOP 3 * จาก Layer
มีวิธีการใช้ SELECT TOP (n) ในเดสก์ท็อป ArcGIS หรือไม่? ปรากฏว่าเนื่องจากตัวสร้างแบบสอบถาม ArcGIS สร้างคำสั่ง SQL ได้อย่างมีประสิทธิภาพหลังจากส่วนคำสั่ง WHERE ซึ่งอาจเป็นไปไม่ได้
นี่คือตัวอย่างการใช้งานSQL ทั่วไป :
SELECT TOP 3 * จาก Layer
คำตอบ:
หากฐานข้อมูลของคุณรองรับการสืบค้นย่อยคุณสามารถสร้างการสืบค้นด้วย 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)