我有不同的产品资源,许多表,选择0,如果NULL发现 - MySQL的
不幸的是,Quantity
列Varchar
类型。
默认情况下,某些行包含null
值,如果在INSERT操作期间未输入Quantity
。
我想SELECT查询返回0
如果数量为null
SELECT CAST(quantity AS DECIMAL(6, 2))
FROM `tablename`
但是,这仍然会返回NULL
我有不同的产品资源,许多表,选择0,如果NULL发现 - MySQL的
不幸的是,Quantity
列Varchar
类型。
默认情况下,某些行包含null
值,如果在INSERT操作期间未输入Quantity
。
我想SELECT查询返回0
如果数量为null
SELECT CAST(quantity AS DECIMAL(6, 2))
FROM `tablename`
但是,这仍然会返回NULL
使用COALESCE()
:
返回列表中的第一个非NULL值如果没有非NULL值,则返回NULL。
SELECT COALESCE(CAST(quantity AS DECIMAL(6, 2)), 0)
FROM `tablename`
SELECT CAST(COALESCE(quantity ,0) AS DECIMAL(6, 2))
FROM `tablename`
如果我有EMPTY值而不是'null',该怎么办?它会返回0吗? – Umair
您可以使用IFNULL
SELECT ifnull(CAST(quantity AS DECIMAL(6, 2)), 0) from your_table;
SELECT COALESCE(CAST(quantity AS DECIMAL(6, 2)), 0)
FROM `tablename`
如果我有空值,而不是'null'。它会返回0吗? – Umair
施放一个空字符串应该使其值为0 –