尝试使用nullif()将“0.0”转换为空字符串时出错

时间:2012-03-10 01:01:29

标签: asp.net .net sql sql-server database

我尝试使用nullif()方法将十进制字段空值(" 0.0")转换为空字符串("")。但转换导致错误。我为另一个int字段尝试了相同的方法,它工作正常。

如何在sql查询中将十进制空值转换为空字符串?

2 个答案:

答案 0 :(得分:2)

  1. SQL使用'values'的单引号,"column labels"
  2. 的双引号
  3. '0.0'是一个字符串(对于varchar列),0.00是数字(对于int / dec列)
  4. '0.0'0.0都不是null s
  5. nullif()返回null表示正确的条件,而不是空字符串
  6. 所以你可能想要这样的东西:

    case when mydecimal = 0 then '' else cast(mydecimal as varchar(10)) end
    

    或:

    nullif(mydecimal, 0)
    

答案 1 :(得分:0)

TSQL中的

:如果我没弄错的话,ISNULL(值,'')称为coalesce运算符。