row_number
सबसे अच्छा तरीका है, लेकिन जैसा कि आप केवल एक ही पंक्ति चाहते हैं, योजना को देखना सुनिश्चित करें। वांछित पंक्ति की पहचान करना और फिर अतिरिक्त कॉलम प्राप्त करने के लिए मूल तालिका में वापस जुड़ना बेहतर हो सकता है।
WITH T1
AS (SELECT *,
ROW_NUMBER() OVER (ORDER BY number) AS RN
FROM master..spt_values)
SELECT name,
number,
type,
low,
high,
status
FROM T1
WHERE RN = 1000;
देता है
WITH T2
AS (SELECT number,
type,
name,
ROW_NUMBER() OVER (ORDER BY number) AS RN
FROM master..spt_values)
SELECT TOP 1 C.name,
C.number,
C.type,
C.low,
C.high,
C.status
FROM T2
CROSS APPLY (SELECT *
FROM master..spt_values v
WHERE v.number = T2.number
AND v.type = T2.type
AND ( v.name = T2.name
OR ( v.name IS NULL
AND T2.name IS NULL ) )) C
WHERE RN = 1000;
देता है