Maison > base de données > tutoriel mysql > Puis-je utiliser des alias calculés dans les clauses SQL WHERE ?

Puis-je utiliser des alias calculés dans les clauses SQL WHERE ?

Barbara Streisand
Libérer: 2025-01-11 10:48:44
original
554 Les gens l'ont consulté

Can I Use Calculated Aliases in SQL WHERE Clauses?

Utilisation d'alias calculés dans les clauses SQL WHERE

Lors de l'utilisation d'alias calculés en SQL, il est important de comprendre les limites de leur utilisation dans la clause WHERE. Comme le montre la requête ci-dessous :

<code class="language-sql">SELECT (InvoiceTotal - PaymentTotal - CreditTotal) AS BalanceDue
FROM Invoices
WHERE BalanceDue > 0 --错误</code>
Copier après la connexion
La

Valeur calculéeBalanceDue en tant qu'alias ne peut pas être utilisée directement dans la clause WHERE. Il existe cependant des moyens d’obtenir les résultats souhaités.

Une solution consiste à utiliser une table dérivée :

<code class="language-sql">SELECT BalanceDue
FROM (
  SELECT (InvoiceTotal - PaymentTotal - CreditTotal) AS BalanceDue
  FROM Invoices
) AS x
WHERE BalanceDue > 0;</code>
Copier après la connexion

Alternativement, le calcul peut être répété dans la clause WHERE :

<code class="language-sql">SELECT (InvoiceTotal - PaymentTotal - CreditTotal) AS BalanceDue
FROM Invoices
WHERE (InvoiceTotal - PaymentTotal - CreditTotal) > 0;</code>
Copier après la connexion

Dans la plupart des cas, il est recommandé de répéter les expressions dans la clause WHERE par souci de simplicité.

Gardez à l'esprit que la surutilisation des alias calculés dans des requêtes complexes peut entraîner des problèmes de performances. Dans ce cas, envisagez de créer une colonne calculée ou de conserver les résultats pour un accès plus rapide.

Fait intéressant, dans l'exemple donné, SQL Server optimise la requête pour n'effectuer le calcul qu'une seule fois, quelle que soit la façon dont l'alias est référencé. Toutefois, lorsque vous travaillez avec des requêtes plus complexes, il est important de comprendre l’impact potentiel sur les performances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal