我有一个decimal(9,2)
列,我希望在输出为NULL
时显示一个空单元格。 COALESCE(column, '')
将显示空白单元格,不需要进行数据类型转换。
但是,尝试此操作时,我看到一个0
:
COALESCE(CONVERT(float,columnname),'')
我也尝试了不使用CONVERT
的情况,例如:
COALESCE(columnname,'')
我看到此错误:
将数据类型varchar转换为数字时出错
有人可以帮我吗?
答案 0 :(得分:5)
数字类型可以从不为空白。它们要么是一个值,要么是NULL
。 “空白”实际上意味着“空字符串”,并且您不能将字符串值放入数字类型数据中。如果要查看空白,则必须执行以下操作:
COALESCE(STR(columnname),'')
请记住:现在这是结果中的varchar
列,而不是则是decimal(9,2)
。下游任何想要使用这些数字的人都必须再次将字符串数据重新解析为数字。
best 选项通常是为了允许数据库服务器返回NULL
,并使系统的演示文稿末尾担心如何处理这些值...但是我知道并非总是可能。