Rumah > pangkalan data > tutorial mysql > Bolehkah saya Menggunakan Alias ​​Lajur dalam Ungkapan Seterusnya Dalam Pernyataan SELECT SQL yang Sama?

Bolehkah saya Menggunakan Alias ​​Lajur dalam Ungkapan Seterusnya Dalam Pernyataan SELECT SQL yang Sama?

Susan Sarandon
Lepaskan: 2025-01-14 09:31:42
asal
143 orang telah melayarinya

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

Penggunaan alias lajur dalam pernyataan SQL SELECT dalam ungkapan seterusnya

Dalam SQL, anda mungkin menghadapi situasi di mana anda ingin menggunakan alias lajur dalam ungkapan seterusnya dalam pernyataan SELECT yang sama. Walau bagaimanapun, percubaan untuk melakukan ini mungkin menghasilkan ralat yang serupa dengan yang diterangkan dalam soalan.

Sebab pengehadan ini ialah alias lajur diproses bersama apabila pernyataan SELECT dinilai. Oleh itu, alias tidak tersedia dalam pernyataan SELECT yang sama.

Penyelesaian: Merangkumkan pertanyaan dalam subkueri

Untuk menyelesaikan masalah ini, anda boleh merangkum pertanyaan asal dalam subkueri. Ini mewujudkan skop baharu di mana alias lajur boleh digunakan di luar subkueri.

Berikut ialah cara untuk mengubah suai pertanyaan untuk menggunakan alias lajur avg_time dan cnt dalam ungkapan ROUND(avg_time * cnt, 2):

<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>
Salin selepas log masuk

Dengan merangkum pertanyaan dalam subkueri, alias boleh digunakan dalam pernyataan SELECT luar, membolehkan anda berjaya menilai ungkapan ROUND(avg_time * cnt, 2).

Atas ialah kandungan terperinci Bolehkah saya Menggunakan Alias ​​Lajur dalam Ungkapan Seterusnya Dalam Pernyataan SELECT SQL yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan