結果が500Kを超えるクエリを持つ。私がしたいのは、これらを100Kの結果で分割することです。私はしかし、それを支援するために行番号列を作成し、今私はそれを参照してるというのが私のそれは機能を処理して、このエラーを取得維持しません:WHEREでROW_NUMBER()を参照する場合
メッセージ4108、レベル15、状態1、 Line 1 ウィンドウ関数は、SELECT句またはORDER BY句にのみ表示できます。参照用
問合せ:
1 SELECT
2 mt.Name,
3 mt.IDNO,
4 so.IDType,
5 Row = ROW_NUMBER()OVER(ORDER BY mt.Name)
6
7 FROM MainTable mt WITH(NOLOCK)
8 LEFT JOIN SupportTable1 so WITH(NOLOCK) ON so.Name = mt.Name
9 LEFT JOIN SupportTable2 st WITH(NOLOCK) ON st.Name = mt.Name
10
11 WHERE 1=1
12 AND ROW_NUMBER()OVER(ORDER BY mt.Name) BETWEEN '1' and '100000'
Msg 4108, Level 15, State 1, Line 12 Windowed functions can only appear in the SELECT or ORDER BY clauses.
これを使用するか、それは私が必要なものを私に与えることができ探求する別のオプションがあるために私は何をしますか?
ありがとうございました。
あなたはMySQLを使用していません。コードは明らかにSQL Serverです。 –
NOLOCKヒントを使用してすべてのクエリを浪費する前に、この記事をチェックしてください。 http://blogs.sqlsentry.com/aaronbertrand/bad-habits-nolock-everywhere/ –