Rumah >pangkalan data >tutorial mysql >Bagaimanakah Penyata MySQL CASE Boleh Mengisi Lajur Secara Bersyarat?

Bagaimanakah Penyata MySQL CASE Boleh Mengisi Lajur Secara Bersyarat?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-25 10:12:13242semak imbas

How Can MySQL CASE Statements Populate Columns Conditionally?

Menggunakan Penyata Kes untuk Populasi Lajur Bersyarat dalam MySQL

Dengan keperluan untuk mengisi dua lajur secara bersyarat ('Income Amt' dan 'Expense Amt ') dalam jadual 'tbl_transaction', pernyataan kes terbukti sebagai penyelesaian yang berkesan dalam MySQL.

Pernyataan kes membolehkan anda menilai ungkapan dan mengembalikan nilai yang berbeza berdasarkan sama ada syarat dipenuhi atau tidak. Dalam kes ini, lajur action_type digunakan sebagai syarat untuk menentukan sama ada amaun harus diperuntukkan kepada lajur Amt Pendapatan atau Expense Amt.

Berikut ialah pertanyaan yang menunjukkan penggunaan penyata kes untuk mencapai yang diingini hasil:

SELECT
    id,
    action_heading,
    CASE
        WHEN action_type = 'Income' THEN action_amount
        ELSE NULL
    END AS income_amt,
    CASE
        WHEN action_type = 'Expense' THEN action_amount
        ELSE NULL
    END AS expense_amt
FROM tbl_transaction;

Dalam pertanyaan ini, penyata CASE digunakan dua kali, sekali untuk menetapkan tindakan_jumlah kepada lajur income_amt jika jenis_tindakan ialah 'Pendapatan' dan sekali untuk menetapkan jumlah_tindakan kepada lajur expense_amt jika jenis_tindakan ialah 'Perbelanjaan'.

Keluaran pertanyaan ini adalah seperti berikut:

id action_heading income_amt expense_amt
1 ABC 1000 NULL
2 XYZ NULL 2000

Ini menunjukkan cara pernyataan kes boleh mengisi lajur secara dinamik berdasarkan ungkapan bersyarat, menyediakan cara yang mudah untuk mengkategorikan dan menyusun data dengan berkesan.

Atas ialah kandungan terperinci Bagaimanakah Penyata MySQL CASE Boleh Mengisi Lajur Secara Bersyarat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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