4D v16.3ORDER BY |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
ORDER BY
ORDER BY
ORDER BY は、カレントプロセスのaTableのカレントレコードセレクションをソートします。ソートが終了すると、セレクションの先頭レコードがカレントレコードとなります。 aTable引数を省略した場合、コマンドはデフォルトテーブルに適用されます (デフォルトテーブルが事前に設定されていれば)。デフォルトテーブルが設定されていない場合、4Dは引数として渡された最初のフィールドのテーブルを使用します。引数を渡さず、デフォルトテーブルも設定されていない場合、エラーが生成されます。 aField、 > または <、 * 引数を指定しない場合、ORDER BY コマンドはaTableを対象とした並び替えエディタを表示します: 並び替えエディタの使用に関する詳細は、4D Design Referenceを参照してください。 aField引数と> または < 引数を指定した場合、標準のORDER BYエディターは表示されず、並べ替えはプログラムによって定義されます。セレクションは一つのレベルあるいは複数のレベルにおいて並べ替えが可能です。各並べ替えのレベルに対して、aField 引数にはフィールドを、> または < 引数には並べ替え順を指定します。"大なり"記号(>)を渡した場合には昇順に、"小なり"記号(<)を渡した場合には降順に並べ替えされます。 一つのフィールドだけが指定されていて(並べ替えレベル1)それがインデックス付けがされている場合、そのインデックスは並べ替えに使用されます。そのフィールドがインデックスされていない、あるいは複数のフィールドが指定されている場合、並べ替えはシーケンシャルに実行されます(ただし複合インデックスの場合は除く)。フィールドは並べ替えされる(セレクションの)テーブルか、あるいは引数で指定したテーブルに自動リレーションで関連付けられた1テーブルに所属しているものを指定可能です。 複数の並べ替え(複数のフィールドに対する並べ替え)に対しては、必要に応じてORDER BYを何度でも呼び出し任意の * 引数を指定することもできますが、最後のORDER BYの呼び出しは除きます。最後の呼び出しは実際の並べ替え操作を開始させるからです。 どのように定義された並べ替えであっても、実際の並べ替え操作が実行に時間がかかる場合には、4Dは進捗サーモメーターを含めたメッセージを自動的に表示します。これらのメッセージはMESSAGES ON と MESSAGES OFFのコマンドを使用して付けたり消したりすることができます。進捗サーモメーターが表示された場合、ユーザーは停止ボタンを押して並べ替えを中止することができます。 並べ替えが中止されることなく実行された場合、OK変数は1に設定されます。ユーザーがキャンセルあるいは中止をクリックした場合、ORDER BYは実際には何の並べ替えを実行することなく終了し、OK変数を0 (ゼロ)に設定します。 注: このコマンドはオブジェクト型フィールドをサポートしません。 以下の例は[Products]テーブルを対象とした並び替えエディタを表示します: ORDER BY([Products]) 以下の例は、デフォルトテーブルを対象とした並び替えエディタを表示します (デフォルトテーブルが設定されていた場合): ORDER BY 以下の例は[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;>) 以下のコードは、リレートフィールドを使用してシーケンシャルソートを実行します: SET FIELD RELATION([Employee]Company_ID;Automatic;Do not modify) データベースに[Contacts]LastName + [Contacts]FirstNameの複合インデックスが設定されている場合、以下の例題は2レベルのソートをインデックスを使用して行います: ORDER BY([Contacts];[Contacts]LastName;>;[Contacts]FirstName;>) アプリケーションモードで表示される出力フォームで、ユーザが列ヘッダをクリックすると昇順にソートが行われるようにします。 Shiftキーを押しながら他の縦の列ヘッダをクリックすると、複数レベルでソートが実行されます: 各列ヘッダには、以下のオブジェクトメソッドが記述されたハイライトボタンが置かれています: MULTILEVEL(->[CDs]Title) `Title column header button 各ボタンは、列フィールドに対応するポインタを引数に、MULTILEVELプロジェクトメソッドを呼び出します。MULTILEVELプロジェクトメソッドは、以下の通りです: ` MULTILEVEL Project Method
参照
|
プロパティ
プロダクト: 4D 履歴
変更: 4D v11 SQL ARTICLE USAGE
ランゲージリファレンス ( 4D v16) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||