4D v16.3ORDER BY FORMULA |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
ORDER BY FORMULA
|
ORDER BY FORMULA ( aTable ; expression {; > or <}{; expression2 ; > or <2 ; ... ; expressionN ; > or <N} ) | ||||||||
引数 | 型 | 説明 | ||||||
aTable | テーブル |
![]() |
セレクションをソートするテーブル | |||||
expression | 式 |
![]() |
各レベルのソートに設定する式 (文字, 実数, 整数, 倍長整数, 日付, 時間または ブール) | |||||
> or < | 演算子 |
![]() |
各レベルのソート方向: >: 昇順, または <: 降順 | |||||
ORDER BY FORMULAは、カレントプロセスのaTableのカレントレコードセレクションをソートします。ソートが終了すると、セレクションの先頭レコードがカレントレコードとなります。注: 引数aTable でテーブルを必ず指定しなければならない点に注意してください。デフォルトテーブルを使用することはできません。
1つまたは複数のレベルを用いてセレクションのソートを実行できます。ソートレベルごとに、formula 引数と> または <を指定します。> は昇順を、< は降順を意味します。ソート方向を省略した場合、デフォルトとしてソートを昇順に行います。
formula 引数に指定できる型は、文字、実数、整数、倍長整数、日付、時間、ブールです。
ソートの定義方法に関係なく、実際のソート処理に時間がかかる場合は、4Dは自動的にインジケーターで進捗状況のメッセージを表示します。MESSAGES ON コマンドと MESSAGES OFF コマンドを使用して、メッセージを表示または非表示にすることができます。進捗インジケーターが表示された場合、ユーザは中止ボタンをクリックしてソートを中止することができます。ソートが正常に終了すると、システム変数OKには1がセットされ、それ以外の場合には0がセットされます。
4D Server: このコマンドはサーバ上で実行され、実行が最適化されるようになりました。formula 引数内で直接変数が呼ばれているとき、クライアントマシンの変数値を使用してソートを計算します。例えば、というORDER BY FORMULA([mytable];[mytable]myfield*myvariable) コードは実行はサーバー側でされますが、クライアントマシンのmyvariable の中身を使用して実行されます。
互換性に関する注意: 4D Server v11までは、このコマンドはクライアントマシン上で実行されていました。この処理は、変換されたデータベースにおいては後方互換性のために維持されています。しかしながら、互換性プロパティ、あるいはSET DATABASE PARAMETER コマンドのセレクターを使用すると、変換されたデータベースにおいてもサーバー側での実行が有効化されます。
以下の例は、[People]テーブルをLastNameフィールドの文字長をキーにして降順に並び替えます。最も長い名字を持った人がカレントセレクションの先頭になります:
ORDER BY FORMULA([People];Length([People]LastName);<)
プロダクト: 4D
テーマ: クエリ
番号:
300
変更: 4D v11 SQL Release 2
ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)