Heim > Datenbank > MySQL-Tutorial > Kann ich Spaltenaliase in nachfolgenden Ausdrücken innerhalb derselben SQL-SELECT-Anweisung verwenden?

Kann ich Spaltenaliase in nachfolgenden Ausdrücken innerhalb derselben SQL-SELECT-Anweisung verwenden?

Susan Sarandon
Freigeben: 2025-01-14 09:31:42
Original
143 Leute haben es durchsucht

Can I Use Column Aliases in Subsequent Expressions Within the Same SQL SELECT Statement?

Die Verwendung von Spaltenaliasen in SQL SELECT-Anweisungen in nachfolgenden Ausdrücken

In SQL kann es vorkommen, dass Sie Spaltenaliase in nachfolgenden Ausdrücken in derselben SELECT-Anweisung verwenden möchten. Der Versuch, dies zu tun, kann jedoch zu einem Fehler führen, der dem in der Frage beschriebenen ähnelt.

Der Grund für diese Einschränkung liegt darin, dass Spaltenaliase zusammen verarbeitet werden, wenn die SELECT-Anweisung ausgewertet wird. Daher sind Aliase nicht innerhalb derselben SELECT-Anweisung verfügbar.

Lösung: Kapseln Sie die Abfrage in einer Unterabfrage

Um dieses Problem zu lösen, können Sie die ursprüngliche Abfrage in einer Unterabfrage kapseln. Dadurch wird ein neuer Bereich erstellt, in dem der Spaltenalias außerhalb der Unterabfrage verwendet werden kann.

So ändern Sie die Abfrage, um die Spaltenaliase avg_time und cnt im Ausdruck ROUND(avg_time * cnt, 2) zu verwenden:

<code class="language-sql">SELECT stddev_time, max_time, avg_time, min_time, cnt, 
       ROUND(avg_time * cnt, 2) as slowdown
FROM (
        SELECT 
            COALESCE(ROUND(stddev_samp(time), 2), 0) as stddev_time, 
            MAX(time) as max_time, 
            ROUND(AVG(time), 2) as avg_time, 
            MIN(time) as min_time, 
            COUNT(path) as cnt, 
            path
        FROM 
            loadtime
        GROUP BY
            path
        ORDER BY
            avg_time DESC
        LIMIT 10
   ) X;</code>
Nach dem Login kopieren

Durch Kapselung der Abfrage in einer Unterabfrage kann der Alias ​​in einer äußeren SELECT-Anweisung verwendet werden, sodass Sie den Ausdruck ROUND(avg_time * cnt, 2) erfolgreich auswerten können.

Das obige ist der detaillierte Inhalt vonKann ich Spaltenaliase in nachfolgenden Ausdrücken innerhalb derselben SQL-SELECT-Anweisung 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