カーソル指定::=問合せ式 〔ORDER BY句〕 〔LIMIT句〕
ORDER BY句::=ORDER BY 列指定 〔{ASC|DESC}〕〔,列指定 〔{ASC|DESC}〕〕…
LIMIT句::=LIMIT リミット行数
リミット行数::={整数定数|:埋め込み変数} |
(a) 問合せ式
検索条件(表式)と検索した結果を出力する項目(選択式)を指定すると,検索結果を格納した仮想的な表が生成されます。この表を導出表といいます。導出表は,選択式で指定した列で構成されます。
なお,XDBでは,問合せ式は問合せ指定と等しくなります。問合せ指定については,「2.2 問合せ指定」を参照してください。
(b) ORDER BY句
問合せ式での検索結果を,昇順または降順に並べ替える場合のソートの方法を指定します。
ORDER BY句を省略した場合,導出表中の行の並びは保証されません。
ORDER BY句についての規則を次に示します。
- ソートキーに指定する列の数は,16以下にしてください。
- 同じ列は2回以上指定できません。
- 問合せ式で導出される表に重複する列名があるときは,その列名をソートキーに指定できません。
- ソートキー中に指定した導出列名は,単一の列指定だけから導出されている場合,その列指定によって置き換えられます。
- ソートキーに列指定を指定した場合,列指定が参照する列を参照します。
- 列指定
- ソートキーにする列を指定します。
- 列指定についての規則を次に示します。
- ソートキーに検索結果として出力する項目(選択式で指定されている項目)以外のものを指定する場合は,選択式中に集合関数を指定できません。
- 次のデータ型の列は指定できません。
・定義長が4037バイト以上のCHAR型
・ROWID型
- {ASC|DESC}
- ASC
- 検索結果を昇順に並べ替える場合に指定します。
- DESC
- 検索結果を降順に並べ替える場合に指定します。
(c) LIMIT句
問合せ式の検索結果のうち,取得する行数を指定します。
- LIMIT リミット行数
- 問合せ式の検索結果から取得する行数を指定します。
LIMIT句についての規則を次に示します。
- リミット行数のデータ型には整数(INTEGER型)を指定してください。指定の範囲は0~2147483647です。
- リミット行数にナル値は指定できません。
- リミット行数に埋め込み変数を指定した場合,埋め込み変数のデータ型には,INTEGER型が仮定されます。
- リミット行数の指定がある場合,検索結果行数は次のようになります。
MIN(問合せ式の検索結果行数,リミット行数)
- 問合せ式の検索結果がリミット行数を超える場合,次のときには検索結果が一意に定まりません。
- リミット行数で指定した最終行と同じソートキーの値を持つ行が複数存在する
- ソートキーの指定がない
検索結果が一意に定まらない場合の例を次に示します。
- (例)
- 次のSQLを使用して表ZAIKOを検索した場合,ソートキーとなる列TANKAに,3番目に小さい値である'3640'を持つ行が複数あるため,検索結果が結果1となるか,結果2となるかは不定となります。
SELECT * FROM "ZAIKO" ORDER BY "TANKA" LIMIT 3
図2-1 LIMIT句の指定によって,検索結果が不定となる例
![[図データ]](figure/zu030010.gif)