आपके उदाहरण #2 ने मुझे थोड़ी देर के लिए सिर खुजलाया था - मैंने अपने आप से सोचा:"आप DISTINCT
नहीं कर सकते एक कॉलम, इसका क्या मतलब होगा?" - जब तक मुझे एहसास नहीं हुआ कि क्या हो रहा है।
जब आपके पास
SELECT DISTINCT(t.ItemNumber)
आप नहीं हैं , दिखावे के बावजूद, वास्तव में t.ItemNumber
. के अलग-अलग मान मांग रहे हैं ! आपका उदाहरण #2 वास्तव में उसी तरह पार्स किया जाता है जैसे
SELECT DISTINCT
(t.ItemNumber)
,
(SELECT TOP 1 ItemDescription
FROM Transactions
WHERE ItemNumber = t.ItemNumber
ORDER BY DateCreated DESC) AS ItemDescription
FROM Transactions t
t.ItemNumber
के आसपास वाक्य-रचना-सही लेकिन अनावश्यक कोष्ठकों के साथ . यह समग्र रूप से परिणाम-सेट के लिए है DISTINCT
लागू होता है।
इस मामले में, चूंकि आपका GROUP BY
. है कॉलम द्वारा समूह जो वास्तव में भिन्न होता है, आपको वही परिणाम मिलते हैं। मैं वास्तव में थोड़ा हैरान हूं कि SQL सर्वर नहीं करता है (GROUP BY
. में) उदाहरण) जोर देकर कहते हैं कि सबक्वायर्ड कॉलम का उल्लेख GROUP BY
. में किया गया है सूची।