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

SQL WHERE 句でエイリアスを正しく参照するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-26 14:03:14780ブラウズ

How Can I Correctly Reference Aliases in a SQL WHERE Clause?

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

SQL クエリを使用する場合、多くの場合、テーブルまたは式に一時的な名前を付けるためにエイリアスを使用する必要があります。 。これにより、コードの読みやすさと保守性が向上します。ただし、クエリのさまざまな部分でエイリアスを参照する場合は、制限事項に注意することが重要です。

問題

この例では、次のような試みが行われます。クエリの WHERE 句でエイリアス (_year) を参照します。ただし、これによりエラーが発生します:

ERROR:  column "_year" does not exist

このエラーは、WHERE 句が SELECT 句の前に最初に実行されるために発生します。実行時には、データベースは SELECT 句のエイリアス定義にまだ遭遇していないため、それを認識できません。

解決策

この問題を回避するには、次のようにします。 WHERE 句自体でエイリアスが定義されるようにクエリを書き直すことができます。これにより、WHERE 句の実行時にエイリアスが使用可能になります。

SELECT
    SUBSTRING(pk, 6, 2)::INT AS _year
FROM
    listing
WHERE
    SUBSTRING(pk, 6, 2)::INT > 90

WHERE 句にエイリアス定義を配置することで、エラーが発生することなく、同じ句内でエイリアスを参照できます。

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

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