ホームページ > データベース > mysql チュートリアル > SQL WHERE 句で計算されたエイリアスを使用できますか?

SQL WHERE 句で計算されたエイリアスを使用できますか?

Barbara Streisand
リリース: 2025-01-11 10:48:44
オリジナル
554 人が閲覧しました

Can I Use Calculated Aliases in SQL WHERE Clauses?

SQL WHERE 句での計算されたエイリアスの使用

SQL で計算エイリアスを使用する場合、WHERE 句での使用の制限を理解することが重要です。以下のクエリに示すように:

<code class="language-sql">SELECT (InvoiceTotal - PaymentTotal - CreditTotal) AS BalanceDue
FROM Invoices
WHERE BalanceDue > 0 --错误</code>
ログイン後にコピー

計算された値BalanceDue をエイリアスとして WHERE 句で直接使用することはできません。ただし、望ましい結果を達成する方法はあります。

1 つの方法は、派生テーブルを使用することです:

<code class="language-sql">SELECT BalanceDue
FROM (
  SELECT (InvoiceTotal - PaymentTotal - CreditTotal) AS BalanceDue
  FROM Invoices
) AS x
WHERE BalanceDue > 0;</code>
ログイン後にコピー

または、WHERE 句で計算を繰り返すこともできます。

<code class="language-sql">SELECT (InvoiceTotal - PaymentTotal - CreditTotal) AS BalanceDue
FROM Invoices
WHERE (InvoiceTotal - PaymentTotal - CreditTotal) > 0;</code>
ログイン後にコピー

ほとんどの場合、わかりやすくするために WHERE 句で式を繰り返すことをお勧めします。

複雑なクエリで計算されたエイリアスを過度に使用すると、パフォーマンスの問題が発生する可能性があることに注意してください。この場合、計算列を作成するか、アクセスを高速化するために結果を永続化することを検討してください。

興味深いことに、この例では、エイリアスがどのように参照されているかに関係なく、SQL Server は計算を 1 回だけ実行するようにクエリを最適化します。ただし、より複雑なクエリを操作する場合は、潜在的なパフォーマンスへの影響を理解することが重要です。

以上がSQL WHERE 句で計算されたエイリアスを使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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