这是我的查询的一部分
(t.as_num_responded-sqrt(t.as_num_responded))/t.as_num_subjects as 'RF score'
其中t是我的数据库,当我尝试使用coalesce
函数时问题到了,它不起作用,将NULL
替换为0。
coalesce(t.as_num_responded-sqrt(t.as_num_responded))/t.as_num_subjects) as 'RF score'
不确定我是否使用了coalesce
错误,或者是否因为新列'RF得分'被创建为varchar
,我需要将值作为带有两位小数的浮点数。请,任何帮助将非常有帮助。谢谢。
答案 0 :(得分:1)
我的评论几乎是一个答案。
Coalesce遍历值列表并返回第一个非null值。不幸的是,你给它一个争论,如果那个值为null ......它会转到下一个,什么也找不到,并返回null。
两种修复方式......
coalesce (yourfunction,0)
其中你的函数是(t.as_num_responded-sqrt(t.as_num_responded))/ t.as_num_subjects)行
当函数为空时,这将返回0.
Isnull(yourfunction,0)
Isnull是一个更简单的版本...它不是取一个字段列表,而是只做一个字段并用isnull函数的第二个参数替换空值。