Dein Beispiel #2 hat mich eine Weile am Kopf kratzen lassen - ich dachte mir:"Du kannst nicht DISTINCT
eine einzelne Spalte, was würde das bedeuten?" - bis ich begriff, was los ist.
Wenn Sie
SELECT DISTINCT(t.ItemNumber)
du bist nicht , trotz des Anscheins, der tatsächlich nach unterschiedlichen Werten von t.ItemNumber
fragt ! Ihr Beispiel Nr. 2 wird tatsächlich genauso geparst wie
SELECT DISTINCT
(t.ItemNumber)
,
(SELECT TOP 1 ItemDescription
FROM Transactions
WHERE ItemNumber = t.ItemNumber
ORDER BY DateCreated DESC) AS ItemDescription
FROM Transactions t
mit syntaktisch korrekten aber überflüssigen Klammern um t.ItemNumber
. Für die Ergebnismenge als Ganzes gilt DISTINCT
gilt.
In diesem Fall, da Ihr GROUP BY
Gruppen nach der Spalte, die tatsächlich variiert, erhalten Sie die gleichen Ergebnisse. Ich bin tatsächlich etwas überrascht, dass SQL Server dies nicht tut (in der GROUP BY
Beispiel) darauf bestehen, dass die unterabgefragte Spalte in GROUP BY
erwähnt wird Liste.