リストをソートします。
@Sort( list ; [ order ]; customSortExpression )
list
文字列、数値、日時のリスト。ソートする値です。その他のデータ型を指定した場合は、そのまま返されます。
[ order ]
キーワード。オプション。以下のキーワードを使用してソートの順序を指定します。
[ACCENTSENSITIVE]
[ACCENTINSENSITIVE]
[ASCENDING]
[CASESENSITIVE]
[CASEINSENSITIVE]
[CUSTOMSORT]
[DESCENDING]
[PITCHSENSITIVE]
[PITCHINSENSITIVE]
順序キーワードを複数指定する場合は、コロン (:) で区切ります。デフォルトでは、自動的に以下のキーワードによってソート順が指定されます。
[ASCENDING]:[CASESENSITIVE]:[ACCENTSENSITIVE]:[PITCHSENSITIVE].
デフォルトのソート順キーワードをオーバーライドするには、その逆のキーワードを指定します。例えば、@Sort 関数の [ASCENDING] をオーバーライドするには、[DESCENDING] を指定します。指定したキーワードが競合する場合は、リストの最後のキーワードがソート順に影響します。
customSortExpression
式。[CUSTOMSORT] キーワードを指定する場合は必須です。リストの要素の値を 2 つずつ比較するには、式で一時変数 $A と $B を使用します。$A が $B よりも大きいことを示す場合は、@True または 0 より大きい数値を返します。$B が $A よりも大きいことを示す場合は、@False または 0 以下の数値を返します。
戻り値のデータ型が数値でない場合は、エラーが発生します。
list
文字列、数値、日時のリスト。ソートされた値が返されます。
英語文字セットで昇順、大文字と小文字の区別、アクセント記号の区別を指定した場合のソート順序は、0 から 9 までの数字、a から z と A から Z までの英字、アポストロフィ、ダッシュ、残りの特殊文字の順です。 全角と半角の区別は、ダブルバイトの言語に影響します。
ソートオプションとして Unicode スタンダードソートを設定しているときは、次のキーワードや組み合わせは選択できません。
Unicode スタンダードソートを指定するには、notes.ini の変数 $CollationType を @UCA に設定するか、以下のダイアログボックスの [Unicode スタンダードソート] チェックボックスをオンにします。
*デフォルトのソート順序が選択されていない場合は、[データベースのプロパティ] インフォボックスと [設計のプロパティ] インフォボックスの Unicode オプションは無効化されます。
Unicode ソートの詳細については、http://oss.software.ibm.com/icu/ を参照してください。
日時値の時刻の部分にワイルドカードを指定した (時刻を指定しない) 場合は、日付が同じであるすべての日時値と一致します。例えば、次の日付は同じとみなされます。
[12/12/2000] : [12/12/2000 1:00 PM] : [12/11/2000 - 12/13/2000]
これらの値はランダムにソートされるため、ソートを複数回実行した場合は、そのたびに順序が異なることがあります。
@Sort(@ThisValue)
@Sort(@ThisValue; [ASCENDING])
@Sort(@ThisValue; [DESCENDING])
@Sort(@ProperCase(@ThisValue); [ASCENDING])
これらの例は、フォームフィールドのデフォルト値として使用されます。
@Sort(@DbLookup("";"Server/Name/Notes":"Ski¥¥Clothing.nsf";"Gear";"Ski Pants";5);[DESCENDING])
@Sort(movies;[CASESENSITIVE]:[CUSTOMSORT];@If(@Length($A) < @Length($B);@False;@Length($A) > @Length($B);@True;@False))
[CUSTOMSORT] キーワードを指定すると、大文字と小文字を区別するキーワードがオーバーライドされることに注意してください。
@Sort(pswd1:pswd2:pswd3;[CUSTOMSORT];@If(@PasswordQuality($A) < @PasswordQuality($B);@True;@PasswordQuality($A) > @PasswordQuality($B);@False;@False))
@Sort(animals;[CASESENSITIVE])