SQL सर्वर क्वेरी निष्पादन के परिणाम सेट में रिकॉर्ड के क्रम का कैसे पता लगाता है?
मैं इसके प्रमुख या पूंछ बनाने की कोशिश कर रहा हूं, लेकिन खुद को मेरे सिर को खरोंच रहा हूं। जब मैं फ़ील्ड बदलता हूं तो मैं ऑर्डर चुन रहा हूं वह भी बदल जाता है। जब मैं नीचे SQL को निष्पादित करता हूं तो मुझे एक SELECT *
ही रिकॉर्ड मिलता है, लेकिन बहुत अलग क्रम में।
SELECT TOP (900)
AD.ATTACHMENTID,
AD.NAME,
AD.ISINLINE,
AD.INSERTEDDATETIME,
ATMT.ATTACHMENTBLOB,
U.UFID
FROM ATTACHMENTDETAIL AD WITH (NOLOCK)
INNER JOIN MESSAGEATTACHMENT MA ON MA.ATTACHMENTID = AD.ATTACHMENTID
INNER JOIN ATTACHMENT ATMT ON ATMT.ATTACHMENTID = AD.ATTACHMENTID
INNER JOIN MESSAGE MSG ON MSG.ID = MA.MESSAGEID
INNER JOIN MESSAGEDETAIL MD ON MD.MESSAGEID = MA.MESSAGEID
INNER JOIN [USER] U ON U.ID = MD.USERID
LEFT OUTER JOIN XmlExtractionMapping XM ON MA.MESSAGEID = XM.MessageId
WHERE AD.FILEBOXTOKEN IS NULL
AND (XM.XMLEXTRACTIONDATE IS NOT NULL OR
(MSG.MESSAGESOURCEID = 1 AND MD.FolderId <> -4))
AND AD.ISINLINE = 'FALSE'
ORDER BY
खंड के बिना , SQL सर्वर (और कोई अन्य RDBMS) जो कुछ भी ऐसा लगता है ।
NOLOCK
- आपको सभी प्रकार के कारण दिखाई देंगे कि आपको इसका उपयोग क्यों नहीं करना चाहिए। बाद के लिए, देखें sqlblog.com/blogs/aaron_bertrand/archive/2009/10/11/...