【发布时间】:2012-03-10 01:01:29
【问题描述】:
我尝试使用 nullif() 方法将十进制字段空值(“0.0”)转换为空字符串(“”)。但是转换导致错误。我对另一个 int 字段尝试了相同的方法,并且效果很好。
如何在 sql 查询中将十进制 null 值转换为空字符串?
【问题讨论】:
标签: asp.net .net sql sql-server database
我尝试使用 nullif() 方法将十进制字段空值(“0.0”)转换为空字符串(“”)。但是转换导致错误。我对另一个 int 字段尝试了相同的方法,并且效果很好。
如何在 sql 查询中将十进制 null 值转换为空字符串?
【问题讨论】:
标签: asp.net .net sql sql-server database
'values' 使用单引号,对"column labels" 使用双引号
'0.0' 是字符串(对于 varchar 列),0.0 和 0 是数字(对于 int / dec 列)'0.0' 和 0.0 都不是 nullsnullif() 为正确的条件返回 null,而不是空字符串所以你可能想要这样的东西:
case when mydecimal = 0 then '' else cast(mydecimal as varchar(10)) end
或:
nullif(mydecimal, 0)
【讨论】:
在 TSQL 中:如果我没记错的话,ISNULL(value, '') 调用了合并运算符。
【讨论】: