Informix (バージョン 7.32) DB を使用しています。1 つの操作で、通常のテーブルの ID とシリアル列を使用して一時テーブルを作成します (したがって、通常のテーブルのすべての ID に連続して番号が付けられます)。しかし、次のような ID 順に並べられた通常のテーブルから情報を挿入したいと思います。
CREATE TEMP TABLE tempTable (id serial, folio int );
INSERT INTO tempTable(id,folio)
SELECT 0,folio FROM regularTable ORDER BY folio;
ただし、これにより構文エラーが発生します(ORDER BYのため)
情報を注文して tempTable に挿入する方法はありますか?
更新:これを行う理由は、通常のテーブルには約 10,000 の項目があり、jsp ファイルではすべてのレコードを表示する必要があるためですが、時間がかかるため、これを行う本当の理由はページ付けすることです出力。このバージョンの Informix には、Limit
norがありませんSkip
。は関係にあるため、シリアル番号を付け直すことはできません。これが、1 ページで一定数の結果を取得できる唯一の解決策です (たとえば、1 ページあたり 500 件の結果)。通常のテーブルでは、ID (フォリオと呼ばれる) は削除されているためスキップされています。私が置くとしたら
SELECT * FROM regularTable WHERE folio BETWEEN X AND Y
1 ページで 300 程度、次のページで 500 になるでしょう。