私はSEDEのクエリに取り組んでいます:`order by`コンポーネントを持つウィンドウ関数を使用するときの結果セットの順序は?
select top 20
row_number() over(order by "percentage approved" desc, approved desc),
row_number() over(order by "total edits" asc),
*
from editors
where "total edits" > 30
2つの窓関数を考慮に入れて、結果セットの順序とは何ですか?
私はそれが未定義だと思われますが、決定的な答えを見つけることができませんでした。 OTOHでは、このようなウィンドウ関数を1つ持つクエリの結果は、over(order by ...)
節に従って並べ替えられました。
これらのORDER BYは、ウィンドウ関数の "内部"であり、**単にウィンドウ関数の値を決定するために**使用されます - **外部効果SELECT ** - * NOT **何らかの形、形、形式でSELECT全体に 'ORDER BY 'を指定しないでください –
順序は保証されていません。しかし、**特定の順序が必要な場合は、SELECT文の列を並べ替える順序が効率に影響します(http://sqlblogcasts.com/blogs/sqlandthelike/archive/2011/)。 06/06/column-order-can-matter.aspx) –
@marc_s "効果がありません"ということは真実ではありません。 –