29 EYLÜL 2011, PERŞEMBE
Nasıl geri dönmek için MySQL SUM fonksiyonu eğer değer bulunursa '0' mıyım?
MySQL: basit bir iÅŸlevi var
$query="SELECT SUM(Column 1) from Table WHERE Column 2='Test'";
Eğer 2 Sütununda herhangi bir giriş metni 'Test' sonra, bu fonksiyon 0 iade etmek istiyorum ne zaman BOŞ verir. içeriyorsa Bildiğim kadarıyla buna benzer bir soru soruldu bir kaç kez burada, ama fırsatım olmadı uyum cevaplar için benim amacım, çok isterdim buna şükret biraz yardım etsin bu işi.
Teşekkürler
Nick
CEVAP
29 EYLÜL 2011, PERŞEMBE
COALESCE bu sonucu önlemek için kullanın.
SELECT COALESCE(SUM(column),0)
FROM table
WHERE ...
Eylem olarak görmek için, lütfen bu sql keman görmek: http://www.sqlfiddle.com/#!2/d1542/3/0
Daha Fazla Bilgi İçin:
Üç tabloları (tüm numaraları ile bir boşluk ile bir, ve bir karışım ile bir) verilir
MySQL 5.5.32 Kurulum Şeması:
CREATE TABLE foo
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
val INT
);
INSERT INTO foo (val) VALUES
(null),(1),(null),(2),(null),(3),(null),(4),(null),(5),(null),(6),(null);
CREATE TABLE bar
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
val INT
);
INSERT INTO bar (val) VALUES
(1),(2),(3),(4),(5),(6);
CREATE TABLE baz
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
val INT
);
INSERT INTO baz (val) VALUES
(null),(null),(null),(null),(null),(null);
Sorgu 1:
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
| 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 |
Bunu PaylaÅŸ:

Bir oluşturmak için '' eğer ...
Nasıl MySQL bir Datetime sütun için va...
Nasıl Python ile birden fazla değer ge...
Nasıl bir sonuç (startActivityForResul...
Nasıl eğer değer boş ise Jackson bir a...