ホームページ >データベース >mysql チュートリアル >PostgreSQL クエリの WHERE 句でエイリアスを使用できないのはなぜですか?
WHERE 句でのエイリアスの参照: 探索
PostgreSQL (psql) では、次の理由により、WHERE 句でエイリアスを直接参照することはできません。実行命令に。エイリアスが適用される前に WHERE 句が実行され、「列 "_year" が存在しません」というエラーが発生します。
これは、WHERE 句が元の列名に対して動作し、エイリアスが後でのみ適用されるために発生します。 、結果セットの生成中。したがって、WHERE 句の実行時にエイリアスは認識されません。
この問題を解決するには、WHERE 句で元の列名を直接使用するようにクエリを書き直す必要があります。たとえば、次のクエリを考えてみます。
SELECT SUBSTRING(pk, 6, 2)::INT AS _year FROM listing WHERE _year > 90;
このクエリは、「列 "_year" が存在しません」というエラーで失敗します。これを修正するには、WHERE 句でエイリアスを元の列名に置き換える必要があります:
SELECT SUBSTRING(pk, 6, 2)::INT AS _year FROM listing WHERE SUBSTRING(pk, 6, 2)::INT > 90;
以上がPostgreSQL クエリの WHERE 句でエイリアスを使用できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。