2016-07-23 48 views
-1

我有不同的产品资源,许多表,选择0,如果NULL发现 - MySQL的

不幸的是,QuantityVarchar类型。

默认情况下,某些行包含null值,如果在INSERT操作期间未输入Quantity

我想SELECT查询返回0如果数量为null

SELECT CAST(quantity AS DECIMAL(6, 2)) 
FROM `tablename` 

但是,这仍然会返回NULL

回答

3

使用COALESCE()

返回列表中的第一个非NULL值如果没有非NULL值,则返回NULL。

SELECT COALESCE(CAST(quantity AS DECIMAL(6, 2)), 0) 
FROM `tablename` 
+0

如果我有空值,而不是'null'。它会返回0吗? – Umair

+0

施放一个空字符串应该使其值为0 –

2
SELECT CAST(COALESCE(quantity ,0) AS DECIMAL(6, 2)) 
FROM `tablename` 
+0

如果我有EMPTY值而不是'null',该怎么办?它会返回0吗? – Umair

1

您可以使用IFNULL

SELECT ifnull(CAST(quantity AS DECIMAL(6, 2)), 0) from your_table;