2012-03-10 34 views
0

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

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

回答

2
  1. SQL使用为'values'单引号,双引号为"column labels"
  2. '0.0'是一个字符串(用于varchar列),0.00是数字(INT /癸列)
  3. 既不'0.0'也不0.0null s
  4. nullif()返回null为正确的条件,而不是一个空字符串

所以你可能想是这样的:

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

或:

nullif(mydecimal, 0) 
+0

是的,它工作,我用这个nullif(myfield,''),它将空字符串转换为空字符串,除了小数字段。感谢名单。 – Sas 2012-03-10 02:10:41

0
在TSQL

:ISNULL(价值, '')称为聚结运营商,如果我没有记错。

+0

或使用COALESCE内置函数本身。您必须先从十进制数值中输入数值,但在一天结束时,ISNULL或COALESCE提供的记数比CASE短,且比NULLIF更直观。 – 2012-03-10 02:41:02

相关问题