यदि आप SQL-सर्वर (न्यूनतम 2005) का उपयोग करते हैं तो आप CTE
. का उपयोग कर सकते हैं ROW_NUMBER
. के साथ समारोह। आप CAST
. का उपयोग कर सकते हैं संस्करण के लिए सही क्रम प्राप्त करने के लिए:
WITH cte
AS (SELECT id,
userid,
version,
datetime,
Row_number()
OVER (
partition BY userid
ORDER BY Cast(version AS INT) DESC) rn
FROM [dbo].[table])
SELECT id,
userid,
version,
datetime
FROM cte
WHERE rn = 1
ORDER BY userid
ROW_NUMBER
एक ही (शीर्ष) संस्करण वाले एकाधिक उपयोगकर्ता होने पर भी हमेशा एक रिकॉर्ड देता है। यदि आप सभी "शीर्ष-संस्करण-उपयोगकर्ता-रिकॉर्ड" वापस करना चाहते हैं, तो आपको ROW_NUMBER
को बदलना होगा DENSE_RANK
. के साथ ।