Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menggunakan Alias ​​dalam PostgreSQL WHERE Klausa Tanpa Ralat?

Bagaimana untuk Menggunakan Alias ​​dalam PostgreSQL WHERE Klausa Tanpa Ralat?

Linda Hamilton
Lepaskan: 2025-01-20 20:16:16
asal
228 orang telah melayarinya

How to Use Aliases in PostgreSQL WHERE Clauses Without Errors?

Mengelakkan Ralat "lajur tidak wujud" Apabila Menggunakan Alias ​​dalam Klausa PostgreSQL WHERE

Pertanyaan PostgreSQL boleh membuang ralat "lajur tidak wujud" apabila menggunakan alias dalam klausa WHERE, walaupun alias ditakrifkan dalam senarai SELECT. Ini berlaku kerana klausa WHERE diproses sebelum senarai SELECT, bermakna alias belum lagi dikenali.

Untuk mengatasinya, gunakan klausa WITH (juga dikenali sebagai Ungkapan Jadual Biasa atau CTE). Klausa WITH mencipta set hasil bernama sementara, membolehkan anda merujuk alias dalam pertanyaan utama.

Berikut ialah contoh yang menggambarkan penyelesaian:

<code class="language-sql">WITH jobs_with_lead_state AS (
    SELECT
        jobs.*,
        CASE WHEN lead_informations.state IS NOT NULL THEN lead_informations.state ELSE 'NEW' END AS lead_state
    FROM jobs
    LEFT JOIN lead_informations
        ON lead_informations.job_id = jobs.id
        AND lead_informations.mechanic_id = 3
)
SELECT *
FROM jobs_with_lead_state
WHERE lead_state = 'NEW';</code>
Salin selepas log masuk

Pertanyaan yang disemak ini mentakrifkan CTE bernama jobs_with_lead_state. CTE melaksanakan operasi SELECT dan JOIN awal, menghasilkan alias lead_state. Pertanyaan utama kemudiannya menggunakan CTE ini, membenarkan klausa WHERE merujuk lead_state dengan betul. Pendekatan ini mengelakkan ralat dengan memastikan alias tersedia semasa WHERE penilaian klausa.

Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Alias ​​dalam PostgreSQL WHERE Klausa Tanpa Ralat?. 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