Rumah > pangkalan data > tutorial mysql > Mengapa Saya Tidak Boleh Menggunakan Alias ​​dalam Klausa SQL WHERE Saya?

Mengapa Saya Tidak Boleh Menggunakan Alias ​​dalam Klausa SQL WHERE Saya?

Barbara Streisand
Lepaskan: 2025-01-05 11:43:44
asal
405 orang telah melayarinya

Why Can't I Use Aliases in My SQL WHERE Clause?

Tidak Dapat Merujuk Alias ​​dalam Klausa WHERE

Apabila cuba merujuk alias dalam klausa WHERE pernyataan SQL, pengguna mungkin menghadapi ralat menunjukkan bahawa lajur yang ditentukan tidak wujud. Ralat ini timbul kerana pelaksanaan SQL mematuhi perintah tertentu, dengan klausa WHERE dinilai sebelum klausa SELECT. Akibatnya, alias yang ditakrifkan dalam klausa SELECT tidak dapat dikenali pada masa pelaksanaan klausa WHERE.

Sebab

Dalam contoh yang disediakan, pertanyaan berikut cuba menapis baris berdasarkan alias (_year) yang dibuat dalam SELECT klausa:

SELECT
    SUBSTRING(pk, 6, 2)::INT AS _year
FROM
    listing
WHERE
    _year > 90
Salin selepas log masuk

Pertanyaan ini akan mengakibatkan ralat berikut:

ERROR: column "_year" does not exist
Salin selepas log masuk

Penyelesaian

Untuk menyelesaikan isu ini dan alias rujukan dalam klausa WHERE, pertanyaan mesti ditulis semula untuk menggunakan lajur asas sebaliknya:

SELECT
    SUBSTRING(pk, 6, 2)::INT AS _year
FROM
    listing
WHERE
    SUBSTRING(pk, 6, 2)::INT > 90
Salin selepas log masuk

Dengan merujuk terus lajur (pk) yang digunakan untuk mencipta alias (_year), pertanyaan akan berjaya dilaksanakan dan mendapatkan hasil yang diingini.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menggunakan Alias ​​dalam Klausa SQL WHERE Saya?. 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