1

テーブルには n 個のレコードがありますABC。テーブルから 5 レコードごとに選択するクエリを作成します。

たとえば、テーブルには 30 行あります。そのため、クエリはテーブルから 5 番目、10 番目、15 番目、20 番目、25 番目、30 番目のレコードを出力する必要があります。

試しROW_NUMBER OVER (ORDER BY id )てみましたが、メッセージが表示されました:-

SQL サーバー IML からのメッセージ (メッセージ 156、レベル 15、状態 2):

キーワード「OVER」付近の構文が正しくありません。

Sybase データベースを使用しています。

4

4 に答える 4

1

5行ごとに取得する順序を定義する必要があります。たとえば、PRIMARY KEY IDまたはこのようなものにすることができます

select * from
(
  select ABC.*, ROW_NUMBER() OVER (ORDER BY id) as RN from ABC
) t1
where RN % 5 = 0
于 2012-12-26T11:32:17.147 に答える
0

これはSQLの仕組みではありません。どの列が必要なものを提供するかはわかりませんが、データがどのように格納されているか、または順序がどのようなものであるかを知っているか、気にする必要はありません。

あなたはあなたが望むものを与えるWHERE句を理解する必要があります。順序によっては何かがおかしい。

于 2012-12-26T10:20:38.193 に答える
0

これを試して

  select rn, col_list from (select rownum rn, col_list from tab_name)
  where rn=N;

ここで、N は必要な行番号です。

于 2012-12-26T10:22:06.807 に答える