Heim > Datenbank > MySQL-Tutorial > Kann ich einen berechneten Spaltenalias in einer SQL-WHERE-Klausel verwenden?

Kann ich einen berechneten Spaltenalias in einer SQL-WHERE-Klausel verwenden?

Barbara Streisand
Freigeben: 2025-01-11 10:36:41
Original
679 Leute haben es durchsucht

Can I Use a Calculated Column Alias in a SQL WHERE Clause?

SQL WHERE-Klausel und berechnete Spaltenaliase

Die direkte Verwendung eines berechneten Spaltenalias innerhalb einer SQL-WHERE-Klausel wird normalerweise nicht unterstützt. Diese Abfrage schlägt beispielsweise fehl:

<code class="language-sql">SELECT (InvoiceTotal - PaymentTotal - CreditTotal) AS BalanceDue
FROM Invoices
WHERE BalanceDue > 0; -- Error</code>
Nach dem Login kopieren

Lösungen:

Zwei wirksame Methoden umgehen diese Einschränkung:

1. Unterabfrage (verschachtelte Abfrage):

Dieser Ansatz kapselt die Berechnung in einer Unterabfrage:

<code class="language-sql">SELECT BalanceDue
FROM (
  SELECT (InvoiceTotal - PaymentTotal - CreditTotal) AS BalanceDue
  FROM Invoices
) AS x
WHERE BalanceDue > 0;</code>
Nach dem Login kopieren

2. Ausdruckswiederholung:

Alternativ können Sie die Berechnung sowohl in der SELECT- als auch in der WHERE-Klausel replizieren:

<code class="language-sql">SELECT (InvoiceTotal - PaymentTotal - CreditTotal) AS BalanceDue
FROM Invoices
WHERE (InvoiceTotal - PaymentTotal - CreditTotal) > 0;</code>
Nach dem Login kopieren

Leistungsaspekte:

Während die Unterabfrage möglicherweise weniger effizient erscheint, optimieren moderne Datenbanksysteme wie SQL Server Abfragen häufig effektiv. Die Ausführungspläne für beide Methoden sind häufig identisch, was auf eine ähnliche Leistung hinweist.

Erweiterte Optimierung: Berechnete Spalten

Für komplizierte Berechnungen, die wiederholt über mehrere Abfragen hinweg verwendet werden, bietet eine berechnete Spalte einen erheblichen Leistungsvorteil. Diese vorberechnete Spalte vereinfacht Abfragen und reduziert redundante Berechnungen.

Das obige ist der detaillierte Inhalt vonKann ich einen berechneten Spaltenalias in einer SQL-WHERE-Klausel verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage