4D v14.3ORDER BY |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
ORDER BY
ORDER BY
ORDER BYは、カレントプロセスのaTableのカレントレコードセレクションをソートします。ソートが終了すると、セレクションの先頭レコードがカレントレコードとなります。 aTable引数を省略した場合、コマンドはデフォルトテーブルに適用されます (デフォルトテーブルが事前に設定されていれば)。デフォルトテーブルが設定されていない場合、4Dは引数として渡された最初のフィールドのテーブルを使用します。引数を渡さず、デフォルトテーブルも設定されていない場合、エラーが生成されます。 aField、 > または <、 * 引数を指定しない場合、ORDER BYコマンドはaTableを対象とした並び替えエディタを表示します: 並び替えエディタの使用に関する詳細は、4D Design Referenceを参照してください。 ユーザはソートを組み立て、並び替えボタンをクリックしてソートを実行します。ソートが中断されずに実行されると、システム変数OKに1がセットされます。ユーザがキャンセルボタンをクリックすると、ORDER BYは中止されてソートは実行されず、システム変数OKには0がセットされます。 以下の例は[Products]テーブルを対象とした並び替えエディタを表示します: ORDER BY([Products]) 以下の例は、デフォルトテーブルを対象とした並び替えエディタを表示します (デフォルトテーブルが設定されていれば): ORDER BY aFieldや> または < を指定すると、標準の並び替えエディタは表示されず、ソートはプログラムで定義されることになります。1つのレベル、または複数のレベルを用いてセレクションのソートを実行することができます。ソートレベルごとに、aFieldにフィールドを、ソート方向として > または < を指定します。> は昇順を、< は降順を意味します。 以下の例は[Products]テーブルのカレントセレクションをnameフィールドで昇順に並べ替えます: ORDER BY([Products];[Products]Name;>) 以下の例は[Products]テーブルのカレントセレクションをnameフィールドで降順に並べ替えます: ORDER BY([Products];[Products]Name;<) 以下の例は[Products]テーブルのカレントセレクションをtypeとpriceフィールドで、両レベルとも昇順に並べ替えます: ORDER BY([Products];[Products]Type;>;[Products]Price;>) 以下の例は[Products]テーブルのカレントセレクションをtypeとpriceフィールドで、両レベルとも降順に並べ替えます: ORDER BY([Products];[Products]Type;<;[Products]Price;<) 以下の例は[Products]テーブルのカレントセレクションをtypeの昇順およびpriceの降順で並べ替えます: ORDER BY([Products];[Products]Type;>;[Products]Price;<) 以下の例は[Products]テーブルのカレントセレクションをtypeの降順およびpriceの昇順で並べ替えます: ORDER BY([Products];[Products]Type;<;[Products]Price;>) ソート方向引数 > または < を省略すると、デフォルトで昇順が使用されます。 以下の例は[Products]テーブルをnameフィールドで昇順にソートします: ORDER BY([Products];[Products]Name)
以下の例は、[Products]Nameフィールドにインデックスが設定されている場合は、インデックスソートを実行します: ORDER BY([Products];[Products]Name;>) 以下の例は、フィールドにインデックスが設定されていてもいなくても、シーケンシャルソートを実行します: ORDER BY([Products];[Products]type;>;[Products]Price;>) 以下の例は、リレートフィールドを使用してシーケンシャルソートを実行します: ORDER BY([Invoices];[Companies]Name;>) ` InvoicesはCompaniesテーブルのnameフィールドを使用してソートされる データベースに[Contacts]LastName + [Contacts]FirstNameの複合インデックスが設定されている場合、以下の例題は2レベルのソートをインデックスを使用して行います: ORDER BY([Contacts];[Contacts]LastName;>;[Contacts]FirstName;>) マルチソート (複数のフィールドによるソート) を実行するために、オプション引数 * を指定してORDER BYを何度も必要なだけ呼び出すことができます。実際のソートを始める最後のORDER BYにはこの引数を渡しません。この設定は、カスタマイズされたユーザインタフェースでの複数キーのソート管理に役立ちます。 アプリケーションモードで表示される出力フォームで、ユーザが列ヘッダをクリックすると昇順にソートが行われるようにします。 Shiftキーを押しながら他の縦の列ヘッダをクリックすると、複数レベルでソートが実行されます: 各列ヘッダには、以下のオブジェクトメソッドが記述されたハイライトボタンが置かれています: MULTILEVEL(->[CDs]Title) `Title column header button 各ボタンは、列フィールドに対応するポインタを引数に、MULTILEVELプロジェクトメソッドを呼び出します。MULTILEVELプロジェクトメソッドは、以下の通りです: ` MULTILEVEL Project Method
|
プロパティ
プロダクト: 4D
履歴
変更: 4D v11 SQL 参照 ARTICLE USAGE
ランゲージリファレンス ( 4D v12.4) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||