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

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

Mary-Kate Olsen
リリース: 2024-12-28 06:10:10
オリジナル
582 人が閲覧しました

How Can I Correctly Use Aliases in PostgreSQL's WHERE Clause?

Postgres の WHERE 句でのエイリアスの参照

PostgreSQL では、WHERE 句でエイリアスを参照すると、「列が存在しません」のようなエラーが発生する可能性があります。存在する。"これは、SELECT 句でエイリアスが定義される前に WHERE 句が実行されるために発生します。

それが不可能な理由

SQL では、句は特定の順序で実行されます: WHERE 、FROM、GROUP BY、HAVING、SELECT、ORDER BY。これは、Postgres が WHERE 句に遭遇したとき、SELECT 句で定義されたエイリアスをまだ認識していないことを意味します。

解決策

この問題を解決するには、次のようにします。 WHERE 句でエイリアスを使用しないようにクエリを書き直す必要があります。代わりに、比較する式を直接指定します。たとえば、次のクエリは、整数としてキャストされた「pk」列の 2 番目から 6 番目の文字が 90 より大きい行を正しく選択します。

SELECT
    SUBSTRING(pk, 6, 2)::INT AS _year
FROM
    listing
WHERE
    SUBSTRING(pk, 6, 2)::INT > 90
ログイン後にコピー

注: これこの制限は、SELECT 句で定義されたエイリアスにのみ適用されます。 FROM や JOIN など、他の句で定義されたエイリアスは、後続の句で使用できます。

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

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