Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menggunakan Lajur Dikira dalam Pertanyaan PostgreSQL yang Sama?

Bagaimanakah Saya Boleh Menggunakan Lajur Dikira dalam Pertanyaan PostgreSQL yang Sama?

DDD
Lepaskan: 2025-01-14 08:40:42
asal
167 orang telah melayarinya

How Can I Use Calculated Columns in the Same PostgreSQL Query?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan