この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

ORDER BY

SOQL クエリの SELECT ステートメントで ORDER BY (省略可能) を使用すると、クエリ結果の順序を制御できます (アルファベットの降順など)。レコードが null の場合、ORDER BY を使用して空のレコードを最初か最後に表示できます。

SELECT ステートメントで ORDER BY を使用して、クエリ結果の順序を制御できます。構文は次のとおりです。

1[ORDER BY fieldOrderByList {ASC|DESC} [NULLS {FIRST|LAST}] ]

クエリで ORDER BY 句を使用しない場合、結果の順序は保証されません。

ORDER BY 句を使用したで場合も、ORDER BY 句で使用している項目の値に重複がある場合には、結果の順序が変わる可能性があります。たとえば、同じ Industry (業界) の複数の Account (取引先) レコードがある場合、このクエリの結果の順番が変わることがあります。

1SELECT Name, Industry FROM Account ORDER BY Industry

この問題を回避するには、ORDER BY 句に ID (または結果で一意となるその他の項目) を追加します。次に例を示します。

1SELECT Name, Industry FROM Account ORDER BY Industry, Id

メモ

構文 説明
ASC または DESC 結果を昇順 (ASC) で並び替えるか降順 (DESC) で並び替えるかを指定します。デフォルトの並び替え順序は昇順です。
NULLS FIRST または NULLS LAST null のレコードを結果の先頭 (NULLS FIRST) または最後 (NULLS LAST) に並び替えます。デフォルトでは、null の値が最初に並び替えられます。

たとえば、次のクエリは Account レコードの名前をアルファベットの降順で並び替え、名前が null の取引先を最後に並び替えたクエリ結果を返します。

1SELECT Name
2FROM Account
3ORDER BY Name DESC NULLS LAST

次の要素が ORDER BY を使用して返される結果に影響します。

  • ORDER BY はリレーションクエリの構文と互換性があります。
  • 複数の fieldExpression 句を使用した複数列の並び替えがサポートされています。
  • ORDER BY 句で外部キーの値を使用したリレーションクエリの動作は、Lightning Platform API のバージョンによって異なります。ORDER BY 句でレコードの外部キーの値が null の場合、バージョン 13.0 以降ではレコードが返され、13.0 より前のバージョンではレコードが返されません。
    1SELECT Id, CaseNumber, Account.Id, Account.Name
    2FROM Case
    3ORDER BY Account.Name
    AccountId が空のケースレコードはバージョン 13.0 以降では返されます。
  • 並び替え順は、ユーザのロケール設定によって異なります。英語ロケールの場合、SOQL は、並び替え順を作成する際に、大文字の UTF-8 値を使用します。つまり、英語のロケールの並び替えは、大文字と小文字が区別されません。

    英語以外のロケールの場合、SOQL は、事前定義済みの並び替えのうち、指定されたロケールで自然であるものを使用します。これは、同じ文字であっても文化が異なれば並び替えの方法も異なる場合があることや、このニュアンスを UTF-8 値単独ではとらえることができないことが理由です。

ORDER BY を使用する場合、データ型に次の制限事項が適用されます。

  • 複数選択リスト、リッチテキストエリア、ロングテキストエリア、暗号化 (有効な場合)、およびデータカテゴリグループの参照 (Salesforce ナレッジが有効な場合) のデータ型はサポートされていません。
  • その他すべてのデータ型はサポートされていますが、次の点に注意してください。
    • マスタ通貨は、使用可能な場合は常にマスタ通貨値を使用して並び替えられます。
    • phone データの特殊な書式は並び替えに含まれません。たとえば、ダッシュや括弧などの数値以外の文字は並び替えには含まれません。
    • picklist の並び替えは、設定時に決定された選択リストの並び替えで定義されます。
外部オブジェクトの場合、ORDER BY 句に次の制限があります。
  • 次の制限は、Salesforce Connect の OData 2.0 および 4.0 アダプタにのみ適用されます。
    • NULLS FIRSTNULLS LAST は無視されます。
    • 外部オブジェクトは、リレーションクエリの ORDER BY 句をサポートしません。
  • 次の制限は、Salesforce Connect のカスタムアダプタにのみ適用されます。
    • NULLS FIRSTNULLS LAST は無視されます。

SELECT ステートメントで ORDER BY を省略可能な LIMIT 修飾子と共に使用できます。

1SELECT Name
2FROM Account
3WHERE industry = 'media'
4ORDER BY BillingPostalCode ASC NULLS LAST LIMIT 125