获取错误我尝试使用nullif()方法将十进制字段空值(“0.0”)转换为空字符串(“”)。但是导致错误的转换。我尝试了另一个int字段的相同方法,并且它工作正常。尝试将“0.0”转换为空字符串时使用nullif()
如何将十进制空值转换为SQL查询中的空字符串?
获取错误我尝试使用nullif()方法将十进制字段空值(“0.0”)转换为空字符串(“”)。但是导致错误的转换。我尝试了另一个int字段的相同方法,并且它工作正常。尝试将“0.0”转换为空字符串时使用nullif()
如何将十进制空值转换为SQL查询中的空字符串?
'values'
单引号,双引号为"column labels"
'0.0'
是一个字符串(用于varchar列),0.0
和0
是数字(INT /癸列)'0.0'
也不0.0
是null
snullif()
返回null
为正确的条件,而不是一个空字符串所以你可能想是这样的:
case when mydecimal = 0 then '' else cast(mydecimal as varchar(10)) end
或:
nullif(mydecimal, 0)
:ISNULL(价值, '')称为聚结运营商,如果我没有记错。
或使用COALESCE内置函数本身。您必须先从十进制数值中输入数值,但在一天结束时,ISNULL或COALESCE提供的记数比CASE短,且比NULLIF更直观。 – 2012-03-10 02:41:02
是的,它工作,我用这个nullif(myfield,''),它将空字符串转换为空字符串,除了小数字段。感谢名单。 – Sas 2012-03-10 02:10:41