ホームページ >データベース >mysql チュートリアル >IN 句の値の順序で PostgreSQL クエリ結果を並べ替える方法
PostgreSQL の IN 値リストによる結果の並べ替え
PostgreSQL では、ORDER BY
句は通常、テーブル内の列に作用します。ただし、外部参照 (IN 句など) に基づいて順序付けを強制するために使用することもできます。
クエリ結果が IN 値のリストの順序と一致することを確認するには、PostgreSQL 8.2 で導入された VALUES()
構造を使用できます。
解決策:
一時テーブルまたは共通テーブル式 (CTE) を作成して、IN 値を目的の並べ替え順序にマップします。
<code class="language-sql">WITH Ordering AS ( VALUES (1,1), (3,2), (2,3), (4,4) )</code>
メインテーブルをこの一時テーブルに結合し、それを x にエイリアスします:
<code class="language-sql">SELECT c.* FROM comments c JOIN Ordering x ON c.id = x.id ORDER BY x.ordering</code>
ORDER BY
句で一時テーブルの ordering
列を参照すると、結果は IN 句で指定した順序で並べ替えられます。
以上がIN 句の値の順序で PostgreSQL クエリ結果を並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。