sql查询没有数据的时候怎么用0填充

如题所述

这样:

SELECT

a.dtAS'时间',

ISNULL(b.yield,'0')AS'数据'

FROM

(

SELECT

dateadd(d,number,'2018-11-01')dt

FROM

master..spt_values

WHERE

type='p'

ANDdateadd(d,number,'2018-11-01')<='2018-11-30'

)a

LEFTJOINCE_BD_E_ELECTRIC_WORKSHIFT_TbONa.dt=b.opdate

扩展资料:

注意事项

COALESCE是一个函数,(expression_1,expression_2,?,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。

场景一:你想要获取最大值,然后+1返回(即返回的值已经默认为空了),程序接收了本来不该为空的值去运算,就会出错。

SELECTMAX(my_money)+1FROMtb_test;

改进方法:使用coalesce函数  COALESCE(值1,值2,......,值n),只要遇到非null值就返回。

这样子就可以设置一个值,让你第一个不成功后,返回指定的值,如下面,返回的是1.

SELECTCOALESCE(MAX(my_money)+1,1)FROMtb_test;

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜