私はSQLの実行順序について深い知識がありません。
クエリを実行すると
select top 2 * from Configuration
それは私に与えます
ABC1,100,Data001
ABC2,200,Data002
クエリを実行すると
select top 2 * from Configuration order by 1 desc
それは私に与えます
XYZ1,400,Data100
XYZ2,300,Data099
クエリを実行すると
select * from (select top 2 * from Configuration) as a order by 1 desc
それは私に与えます
XYZ1,400,Data100
XYZ2,300,Data099
私の問題は、なぜ私が得ているのかです
XYZ1,400,Data100
XYZ2,300,Data099
代わりに出力として
ABC1,100,Data001
ABC2,200,Data002
私の知る限り、内部クエリは外部クエリに2行を返します。外部クエリは、これらの 2 つの行を次のように処理します。
From->Where->group by->having->Select->Order by
実行の順序と、期待どおりに言及した2行として出力が得られます。ただし、外部クエリの順序は、内部クエリのテーブル全体に影響します。
私が間違っているところをコメントしてください。