文本代替零结果

时间:2013-10-09 15:28:59

标签: tsql

在我的T-SQL选择查询中,对于每条记录,我想返回字段值(数字),除非它是0(零),我想返回文本'N / A'。实现这一目标的最简单方法是什么?我尝试过使用带有CAST和CONVERT的CASE语句,但无法得到我需要的结果。

3 个答案:

答案 0 :(得分:0)

DECLARE @Field NUMERIC
SET @Field = 0

SELECT CASE WHEN cast(@Field as nvarchar(50)) = '0' then 'N/A' ELSE cast(@Field as nvarchar(50)) END

答案 1 :(得分:0)

您需要从CASE语句返回相同的数据类型,否则在这种情况下,它会尝试将toe“N / A”文本值转换为数字类型。使用以下内容,根据需要调整数据类型:

SELECT CASE [MyFieldName] WHEN 0 THEN 'N/A' 
                          ELSE CAST([MyFieldName] AS VARCHAR(50)) 
       END
  ...

答案 2 :(得分:0)

如果该字段不可为空:

COALESCE(NULLIF(fieldname,0),'N/A')

否则:

CASE CONVERT(VARCHAR,fieldname) WHEN '0' THEN 'N/A' ELSE CONVERT(VARCHAR,fieldname) END