Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengumpul Data dalam MySQL Menggunakan Pernyataan CASE?

Bagaimanakah Saya Boleh Mengumpul Data dalam MySQL Menggunakan Pernyataan CASE?

DDD
DDDasal
2024-12-22 07:23:00497semak imbas

How Can I Condense Data in MySQL Using a CASE Statement?

Memadatkan Data dengan Pernyataan Kes dalam MySQL

Apabila bekerja dengan data yang disimpan dalam pangkalan data hubungan, ia boleh berguna untuk memanipulasi kandungan lajur berdasarkan kriteria tertentu. Di sinilah penyataan CASE berperanan, menyediakan cara untuk menetapkan nilai secara dinamik kepada lajur berdasarkan ungkapan bersyarat, membolehkan anda menstruktur semula data anda untuk analisis dan pelaporan yang dipertingkatkan.

Contoh: Menjana Lajur Bersyarat

Andaikan anda mempunyai jadual pangkalan data yang dipanggil 'tbl_transaction' dengan lajur untuk id, jenis_tindakan, tajuk_tindakan dan jumlah_tindakan. Untuk menjana dua lajur baharu, Amt Pendapatan dan Amt Perbelanjaan, kami boleh memanfaatkan penyata CASE untuk mengisinya secara bersyarat berdasarkan lajur action_type:

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;

Pertanyaan ini akan menghasilkan output yang serupa dengan:

ID Heading Income Amt Expense Amt
1 ABC 1000 NULL
2 XYZ NULL 2000

Seperti yang anda lihat, lajur Amt Pendapatan diisi dengan nilai untuk transaksi Pendapatan, manakala lajur Amt Perbelanjaan ialah diisi dengan nilai untuk transaksi Perbelanjaan.

Sintaks Alternatif

MySQL juga menyediakan fungsi IF() sebagai alternatif kepada penyata CASE untuk mengendalikan operasi bersyarat. Walau bagaimanapun, pernyataan CASE adalah lebih baik dalam kes ini kerana ia lebih serba boleh dan mudah alih merentas pelbagai enjin pangkalan data.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengumpul Data dalam MySQL Menggunakan Pernyataan CASE?. 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