ホームページ > データベース > mysql チュートリアル > PostgreSQL の ORDER BY 句でエイリアスを正しく使用するにはどうすればよいですか?

PostgreSQL の ORDER BY 句でエイリアスを正しく使用するにはどうすればよいですか?

DDD
リリース: 2024-12-31 13:32:11
オリジナル
987 人が閲覧しました

How to Correctly Use Aliases in PostgreSQL's ORDER BY Clause?

PostgreSQL: ORDER BY で ALIAS を使用した結果の順序付け

PostgreSQL では、ORDER BY 句でエイリアスを使用すると問題が発生する可能性があります。提供されたクエリに示されているように、ORDER BY でエイリアスを直接参照すると、エラー メッセージが表示される可能性があります。

エラーの説明:

PostgreSQL では、ORDER BY 句で次を参照する必要があります。結果セットに存在する列。このクエリでは、エイリアス「global_stock」が最終結果セットの列に対応していないため、エラーが発生します。

解決策:

2 つのアプローチがあります。この問題を解決するには:

方法 1: SELECT の順序を変更するリスト:

エイリアスが 2 番目 (またはそれ以降) の式として表示されるように SELECT リストを並べ替えます。次のクエリは機能します:

SELECT
    title,
    (stock_one + stock_two) AS global_stock
FROM
    product
ORDER BY
    2, 1;
ログイン後にコピー

この並べ替えにより、エイリアスが ORDER BY 句で正しく参照されることが保証されます。

方法 2: サブクエリの使用:

元の選択をラップするサブクエリを作成し、外側でエイリアスを使用しますクエリの ORDER BY 句。例:

SELECT *
FROM
    (
        SELECT
            title,
            (stock_one + stock_two) AS global_stock
        FROM
            product
    ) x
ORDER BY
    (CASE WHEN global_stock = 0 THEN 1 ELSE 0 END) DESC,
    title;
ログイン後にコピー

このサブクエリのアプローチでは、ネストされた SELECT ステートメント内でエイリアス「global_stock」が使用され、ネストされた結果セットが外側のクエリで順序付けされます。

以上がPostgreSQL の ORDER BY 句でエイリアスを正しく使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート