


Mengapa Klausa PostgreSQL WHERE Saya Tidak Mengenali Lajur Alias PILIH Saya?
PostgreSQL: Menangani Isu Lajur Alias dalam Klausa WHERE
Menghadapi ralat apabila klausa WHERE
PostgreSQL gagal mengenali SELECT
alias berpunca daripada susunan pemprosesan pertanyaan pangkalan data. Tidak seperti beberapa sistem lain (seperti MySQL), PostgreSQL memproses klausa WHERE
sebelum klausa SELECT
. Oleh itu, alias yang ditakrifkan hanya dalam senarai SELECT
tidak tersedia dalam klausa WHERE
.
Penyelesaian Berkesan: Ungkapan Jadual Biasa (CTE)
Penyelesaian yang paling berkesan ialah menggunakan Common Table Expression (CTE). CTE bertindak sebagai set hasil sementara yang dinamakan, membolehkan anda mentakrifkan alias dan kemudian merujuknya kemudian dalam pertanyaan:
WITH jobs_refined 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_refined WHERE lead_state = 'NEW';
Pertanyaan dipertingkat ini menggunakan CTE jobs_refined
untuk mentakrifkan lead_state
. Klausa WHERE
kemudiannya boleh menggunakan alias ini dengan betul kerana CTE telah memproses dan mentakrifkannya. Pendekatan ini mengelakkan ralat asal dan menyediakan pertanyaan yang lebih bersih dan mudah dibaca.
Atas ialah kandungan terperinci Mengapa Klausa PostgreSQL WHERE Saya Tidak Mengenali Lajur Alias PILIH Saya?. 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?
