2010-08-20 75 views

回答

43

是,通過COALESCE

SELECT COALESCE(null_column, 0) AS null_column FROM whatever;

COALESCE檢查你給它的值列表,並返回第一個非空值。

+3

+1:'COALESCE'是ANSI,支持SQL Server 2000+,Oracle 9i +,MySQL 4.1+,不知道PostgreSQL或SQLite的版本... – 2010-08-20 16:27:02

+1

MySQL在標題中提到。我爲它添加了一個標籤。 – RedFilter 2010-08-20 16:33:15

+1

我認爲每個具有SQL接口的3VL DB都支持'coalesce()'。案例和觀點,[這是在MySQL 3.23](http://www.norrnod.se/norrnod/dokumentation/mysql/3.23.45/manual_toc.html#Comparison_Operators),這是接近桶的底部你可以得到。 – 2010-08-20 16:34:57

4

還有就是COALESCE方法,該方法返回第一個非空參數,你的情況:

COALESCE(field, 0) 

但是,如果你願意,你可以使用這個更多:

COALESCE(field1, field2, 0) 
2

的MySQL:

SELECT COALESCE(Mycolumn, 0); 
33

,因爲沒有人提到IFNULL功能

您可以使用IFNULL

SELECT IFNULL(column_name, 0) FROM table_name; 

IFNULL將返回列的值(如果有的話我加入這個答案否則爲NULL)否則爲第二個參數通過(在這種情況下爲0)。

+0

謝謝,在mysql中運行完美。 – iarroyo 2015-08-05 09:03:49