Lajur Dikira PostgreSQL: Panduan Praktikal
Bekerja dengan lajur yang dikira dalam satu pertanyaan PostgreSQL kadangkala boleh menimbulkan cabaran. Tidak seperti beberapa pangkalan data SQL yang lain, pengendalian PostgreSQL bagi lajur yang dikira memerlukan pendekatan khusus.
Mengatasi Ketakserasian Sintaks SQL
Kod SQL berikut, berfungsi dalam banyak sistem pangkalan data lain, akan gagal dalam PostgreSQL:
<code class="language-sql">SELECT cost_1, quantity_1, cost_2, quantity_2, (cost_1 * quantity_1) AS total_1, (cost_2 * quantity_2) AS total_2, (total_1 + total_2) AS total_3 FROM data;</code>
PostgreSQL akan melaporkan bahawa total_1
dan total_2
tidak ditentukan. Ini kerana PostgreSQL menganggap lajur yang dikira sebagai alias, tidak lama untuk pelaksanaan pertanyaan.
Penyelesaian Berkesan: Memanfaatkan Jadual Terbitan
Penyelesaian melibatkan penggunaan jadual terbitan (atau subkueri) untuk mengatasi had ini:
<code class="language-sql">SELECT cost_1, quantity_1, cost_2, quantity_2, total_1 + total_2 AS total_3 FROM ( SELECT cost_1, quantity_1, cost_2, quantity_2, (cost_1 * quantity_1) AS total_1, (cost_2 * quantity_2) AS total_2 FROM data ) AS t;</code>
Dengan menyarangkan pernyataan SELECT
awal dalam jadual terbitan (disebut sebagai t
), pertanyaan luar kemudiannya boleh berjaya merujuk alias total_1
dan total_2
. Kaedah ini tidak memperkenalkan prestasi overhed.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Lajur Dikira dalam Pertanyaan PostgreSQL yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!