如果field为空,那么10 postgreSQL

时间:2014-03-07 18:32:34

标签: sql postgresql

我试图计算所有书籍的价格。我需要确保if字段为空(它为NULL),然后Book的值为10.我试过这个: SUM(CASE WHEN Value = NULL THEN 10 ELSE Value END) as main_value

但这没有做任何事情。它计算总和很好,但是当它找到空字段(null)时,它在计算中不使用值10。 我做错了什么?

2 个答案:

答案 0 :(得分:3)

如果您只想将NULL视为10,那么COALESCE就可以解决这个问题:

  

COALESCE函数返回其第一个非null的参数。仅当所有参数都为空时才返回Null。

所以你可以:

sum(coalesce(Value, 10))

答案 1 :(得分:1)

要与null进行比较,您需要使用is null

SUM(CASE WHEN Value is NULL THEN 10 ELSE Value END) as main_value