Alias dapat digunakan dalam daftar pemilihan kueri untuk memberi kolom nama yang berbeda. Anda dapat menggunakan alias di GROUP BY
, ORDER BY
, atau HAVING
klausa untuk merujuk ke kolom:
SELECT SQRT(a*b) AS root FROM tbl_name
GROUP BY root HAVING root > 0;
SELECT id, COUNT(*) AS cnt FROM tbl_name
GROUP BY id HAVING cnt > 0;
SELECT id AS 'Customer identity' FROM tbl_name;
SQL standar tidak mengizinkan referensi ke alias kolom di WHERE
ayat. Pembatasan ini diberlakukan karena ketika WHERE
klausa dievaluasi, nilai kolom mungkin belum ditentukan. Misalnya, kueri berikut ilegal:
SELECT id, COUNT(*) AS cnt FROM tbl_name
WHERE cnt > 0 GROUP BY id;
WHERE
klausa menentukan baris mana yang harus dimasukkan dalam GROUP BY
klausa, tetapi mengacu pada alias dari nilai kolom yang tidak diketahui sampai setelah baris dipilih, dan dikelompokkan berdasarkan GROUP BY
.
Dalam daftar pilih kueri, alias kolom yang dikutip dapat ditentukan menggunakan pengidentifikasi atau karakter kutipan string:
SELECT 1 AS `one`, 2 AS 'two';
Di bagian lain pernyataan, referensi yang dikutip ke alias harus menggunakan tanda kutip pengenal atau referensi diperlakukan sebagai string literal. Misalnya, pernyataan ini dikelompokkan berdasarkan nilai dalam id kolom, direferensikan menggunakan alias a
:
SELECT id AS 'a', COUNT(*) AS cnt FROM tbl_name
GROUP BY `a`;
Tetapi pernyataan ini dikelompokkan berdasarkan string literal 'a' dan tidak akan berfungsi seperti yang diharapkan:
SELECT id AS 'a', COUNT(*) AS cnt FROM tbl_name
GROUP BY 'a';
Sumber:https://docs.Oracle .com/cd/E17952_01/refman-5.0-en/problems-with-alias.html