2012-01-12 7 views
1

私はorder byのjoinクエリでdistinctを使用します。列ごとに異なる列と順序が異なります。 DISTINCTが返された結果で特定の行に複数の値のマッピングを持っているかもしれませんそれ以外の非選択列として指定されている場合Sql Server 2008でのDistinct&Order Byの使用

+1

質問は何ですか? –

答えて

3

SQL Serverが唯一SELECTリストでORDER BY列にことができます。

実際にそうであることが分かっている場合は、CTEを使用できます。

;WITH CTE 
    AS (SELECT DISTINCT foo, 
         bar 
     FROM T) 
SELECT foo 
FROM CTE 
ORDER BY bar 

fooための複数の可能なbarの値が実際に存在するため、これはあなたのために動作しないなら、あなたは目的を注文するために使用することが明確にされた値を、それを伝える必要があります。例えば代わりにGROUP BYを使用してください。

SELECT foo 
FROM T 
GROUP BY foo 
ORDER BY MIN(bar) 
+0

+1これは素晴らしい回避策です!私はそのことを覚えています。 – Aaron

+0

ありがとう –