Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggunakan Lajur Dikira dalam Pertanyaan PostgreSQL Tanpa Ralat?
Lajur Dikira PostgreSQL: Penyelesaian untuk Had
Pengendalian lajur yang dikira PostgreSQL berbeza daripada sistem pangkalan data lain. Merujuk terus lajur yang dikira kemudian dalam pertanyaan yang sama tidak disokong. Had ini ditunjukkan oleh contoh berikut, yang akan menghasilkan ralat:
<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 -- Error: total_1 and total_2 are not found FROM data;</code>
Ralat timbul kerana PostgreSQL memproses pertanyaan baris demi baris; total_1
dan total_2
tidak tersedia untuk pengiraan seterusnya dalam penyata SELECT
yang sama.
Penyelesaian melibatkan penggunaan subkueri (jadual terbitan) untuk merangkum pengiraan awal. Ini membolehkan keputusan dirujuk dalam pertanyaan luar:
<code class="language-sql">SELECT cost_1, quantity_1, cost_2, quantity_2, total_1, total_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 pengiraan total_1
dan total_2
dalam penyata SELECT
dalam (disebut sebagai t
), pengiraan tersebut boleh diakses dan boleh digunakan untuk pengiraan lanjut dalam penyata SELECT
luar. Kaedah ini menyediakan cara yang praktikal dan cekap untuk bekerja dengan lajur yang dikira dalam PostgreSQL tanpa overhed prestasi yang ketara.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Lajur Dikira dalam Pertanyaan PostgreSQL Tanpa Ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!