Bagaimanakah anda mengendalikan nilai nol dalam fungsi SUM MySQL dengan COALESCE?

DDD
Lepaskan: 2024-11-02 08:47:29
asal
675 orang telah melayarinya

How do you handle null values in MySQL's SUM function with COALESCE?

Cara Mengendalikan Nilai Null dalam Fungsi SUM MySQL dengan COALESCE

Apabila melakukan pengiraan SUM dalam MySQL, ia boleh menjadi mencabar untuk mengendalikan senario di mana tiada nilai memenuhi kriteria yang ditentukan, menghasilkan output NULL. Untuk menangani isu ini, MySQL menyediakan fungsi COALESCE, yang menawarkan cara mudah untuk menentukan nilai pulangan lalai sekiranya nilai NULL berlaku.

Pertimbangkan fungsi MySQL berikut:

SELECT SUM(Column_1)
FROM Table
WHERE Column_2 = 'Test'
Salin selepas log masuk

Jika tiada entri dalam Column_2 mengandungi teks 'Test', fungsi ini akan mengembalikan NULL. Walau bagaimanapun, dalam beberapa kes, adalah lebih baik untuk mengembalikan 0 dan bukannya NULL apabila tiada nilai ditemui.

Untuk mencapai ini, kita boleh menggunakan fungsi COALESCE dalam pengiraan SUM, seperti yang ditunjukkan di bawah:

SELECT COALESCE(SUM(column),0)
FROM   table
WHERE  ...
Salin selepas log masuk

Dengan menentukan 0 sebagai nilai lalai dalam fungsi COALESCE, kami menggantikan mana-mana nilai NULL dalam pengiraan SUM dengan 0 dengan berkesan, memastikan bahawa hasilnya sentiasa integer (walaupun tiada nilai memenuhi kriteria SUM).

Maklumat Tambahan

Fungsi COALESCE adalah serba boleh dan boleh digunakan dalam pelbagai senario di luar pengendalian nilai NULL dalam pengiraan jumlah. Ia amat berguna dalam situasi di mana anda perlu memberikan nilai sandaran untuk data yang hilang atau tidak lengkap.

Untuk menggambarkan penggunaan dan faedah COALESCE dengan lebih lanjut, pertimbangkan contoh jadual berikut dengan jenis data yang berbeza-beza:

  • foo: Mengandungi kedua-dua nombor dan nilai NULL
  • bar: Hanya mengandungi nombor bukan nol
  • baz: Mengandungi hanya nilai NULL

Menggunakan COALESCE berfungsi dalam pertanyaan yang mengira jumlah nilai dalam jadual ini, kami boleh memastikan hasil yang konsisten walaupun terdapat nol:

SELECT  'foo'                   as table_name,
        'mixed null/non-null'   as description,
        21                      as expected_sum,
        COALESCE(SUM(val), 0)   as actual_sum
FROM    foo
UNION ALL

SELECT  'bar'                   as table_name,
        'all non-null'          as description,
        21                      as expected_sum,
        COALESCE(SUM(val), 0)   as actual_sum
FROM    bar
UNION ALL

SELECT  'baz'                   as table_name,
        'all null'              as description,
        0                       as expected_sum,
        COALESCE(SUM(val), 0)   as actual_sum
FROM    baz
Salin selepas log masuk

Hasil pertanyaan ini adalah seperti berikut:

TABLE_NAME DESCRIPTION EXPECTED_SUM ACTUAL_SUM
foo mixed null/non-null 21 21
bar all non-null 21 21
baz all null 0 0

Seperti yang terbukti daripada keputusan, COALESCE memastikan bahawa pengiraan SUM sentiasa mengembalikan 0 untuk jadual baz, dengan semua nilai adalah NULL, dan menyediakan jumlah jangkaan 21 untuk tables foo dan bar.

Atas ialah kandungan terperinci Bagaimanakah anda mengendalikan nilai nol dalam fungsi SUM MySQL dengan COALESCE?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!