ホームページ >データベース >mysql チュートリアル >IN 句の値の順序で PostgreSQL クエリ結果を並べ替える方法

IN 句の値の順序で PostgreSQL クエリ結果を並べ替える方法

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-19 10:56:09179ブラウズ

How to Sort PostgreSQL Query Results by the Order of Values in an IN Clause?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。