我正在运行这个查询:
SELECT
SUM(PRICE) FILTER (my filter's parameters)
Run Code Online (Sandbox Code Playgroud)
当没有记录时它返回<null>
然后我尝试:
SELECT
COALESCE(SUM(PRICE),0) FILTER (my filter's parameters)
Run Code Online (Sandbox Code Playgroud)
但后来我得到一个错误FILTER not valid for coalesce function
我的过滤器的参数是时间窗口,如下所示:
FILTER(WHERE date(order_date) >= (cast(current_date as date) - interval '1' day)) as day1
Run Code Online (Sandbox Code Playgroud)
<null> by 0没有记录如何更换 ?
您应该尝试将整个FILTER表达式包装在 中COALESCE,例如
SELECT
COALESCE(SUM(PRICE) FILTER (my filter's parameters), 0) AS sum_price
Run Code Online (Sandbox Code Playgroud)