2016-10-21 10 views
2

SQLとSQL Serverを初めて使用していて、クエリ内の異なる句の処理順序を理解できません。"distinct"、 "top"、 "order by"句の処理順序の混乱

私は、クエリを持っている:

SELECT DISTINCT TOP(10) name 
FROM tblEmployees 
ORDER BY birthday; 

私は、クエリの実際の処理順序があることを理解:

FROM 
SELECT 
ORDER BY 

しかし、そのようなDISTINCTTOPなどの句が依存しているように私には思えますORDER BY句の結果に基づいています。したがって、SELECT句がORDER BY句の前に実行されている場合、DISTINCTTOPはどのようにORDER BY句の結果を使用できますか?

答えて

4

クエリは論理的にそうDISTINCTORDER BYに依存しないためORDER BY前に処理

1. FROM 
2. ON 
3. OUTER 
4. WHERE 
5. GROUP BY 
6. CUBE | ROLLUP 
7. HAVING 
8. SELECT 
9. DISTINCT 
10 ORDER BY 
11. TOP 

DISTINCTの下で処理されます。

まず重複があるためDISTINCTの結果から削除され、その後ORDER BY

+0

適用されます[OK]ああ、私は常に、「明確な」と「トップ」と思った、コンセプトを明確に感謝句を「選択」の一部です! – Thor

+0

また、あなたのプロフィールをチェックアウトしました。あなたはsql/tsqlの専門家であると思われますが、私のような初心者のためにsqlのための最良の学習方法は何ですか?どんな知恵とアドバイスも大歓迎です! – Thor

+1

@トニースターク - 感謝のためにありがとう..専門家ではないとすべて..ちょうどあなたの助けを求める多くの人々がここに質問してください –