2013-02-11 11 views
11

का एएनएसआई एसक्यूएल संस्करण एसक्यूएल सर्वर के SELECT TOP n का कोई एएनएसआई एसक्यूएल अनुपालन संस्करण है?SELECT TOP 1

उत्तर

15

एएनएसआई/आईएसओ एसक्यूएल: 2003 की शुरुआत की विंडोइंग कार्यों:

SELECT * FROM (
    SELECT 
    ROW_NUMBER() OVER (ORDER BY age ASC) AS rownum, 
    person_id, 
    person_name, 
    age 
    FROM person 
) AS foo 
WHERE rownum <= 3 

Microsoft SQL सर्वर 2005. http://msdn.microsoft.com/en-us/library/ms189798(v=sql.90).aspx

एएनएसआई/आईएसओ एसक्यूएल एसक्यूएल सर्वर के बाद से इस वाक्य रचना का समर्थन किया है: 2008 की शुरुआत में एक सरल FETCH FIRST के लिए वाक्यविन्यास, जो माइक्रोसॉफ्ट/साइबेस TOP सिंटैक्स के समान हो सकता है:

SELECT person_id, person_name, age FROM person 
FETCH FIRST 3 ROWS ONLY 

माइक्रोसॉफ्ट अभी तक इस वाक्यविन्यास का समर्थन नहीं करता है। यह भी देखें http://en.wikipedia.org/wiki/Select_(SQL)#Limiting_result_rows

आप अभी भी Microsoft SQL Server 2000 का उपयोग कर रहे हैं, तो आप एक सवाल मैं थोड़ी देर के पोस्ट वापस "पेजिंग" शैली प्रश्नों करने के बारे में पढ़ना चाहिए: Emulate MySQL LIMIT clause in Microsoft SQL Server 2000

+3

मुझे तो पता ही नहीं था कि ROW_NUMBER() एएनएसआई एसक्यूएल था? – Andrew

संबंधित मुद्दे