


Mengapa Saya Tidak Boleh Menggunakan Alias dalam Klausa GROUP BY dalam Beberapa Pangkalan Data SQL?
KUMPULAN SQL MENGIKUT Klausa: Had Alias
Menggunakan alias dalam SQL GROUP BY
klausa menawarkan kemudahan, tetapi amat penting untuk memahami batasannya. Pertanyaan berikut menggambarkan masalah biasa:
SELECT itemName as ItemName, substring(itemName, 1,1) as FirstLetter, Count(itemName) FROM table1 GROUP BY itemName, FirstLetter
Pertanyaan ini gagal kerana FirstLetter
ialah alias yang ditakrifkan hanya dalam klausa SELECT
. Pangkalan data memproses fasal GROUP BY
sebelum klausa SELECT
; oleh itu, FirstLetter
belum lagi dikenali. Pertanyaan yang betul memerlukan penggunaan ungkapan asal:
GROUP BY itemName, substring(itemName, 1,1)
Had ini timbul daripada perintah pelaksanaan SQL standard:
-
FROM
klausa -
WHERE
klausa -
GROUP BY
klausa -
HAVING
klausa -
SELECT
klausa -
ORDER BY
klausa
Pangkalan data seperti Oracle dan SQL Server dengan tegas mematuhi perintah ini. Alias mesti ditakrifkan sebelum penggunaannya dalam klausa GROUP BY
.
Sebaliknya, pangkalan data seperti MySQL dan PostgreSQL menawarkan lebih fleksibiliti dan mungkin membenarkan penggunaan alias dalam klausa GROUP BY
. Walau bagaimanapun, bergantung pada tingkah laku ini boleh membawa kepada isu mudah alih jika kod anda perlu dijalankan merentasi sistem pangkalan data yang berbeza. Untuk keserasian maksimum, amalan terbaik adalah untuk mengelakkan alias dalam klausa GROUP BY
dan sebaliknya menggunakan nama atau ungkapan lajur asal.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menggunakan Alias dalam Klausa GROUP BY dalam Beberapa Pangkalan Data SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)?

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL?
