在我的 T-SQL 选择查询中,对于每条记录,我想返回字段值(数字),除非它是 0(零),我想在其中返回文本“N/A”。完成此任务的最简单方法是什么?我曾尝试使用带有 CAST 和 CONVERT 的 CASE 语句,但无法获得我需要的结果。
问问题
38 次
3 回答
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
于 2013-10-09T15:39:15.177 回答
0
您需要从 CASE 语句中返回相同的数据类型,否则在这种情况下,它会尝试将 toe“N/A”文本值转换为数字类型。使用以下内容,根据需要调整您的数据类型:
SELECT CASE [MyFieldName] WHEN 0 THEN 'N/A'
ELSE CAST([MyFieldName] AS VARCHAR(50))
END
...
于 2013-10-09T15:40:20.683 回答
0
如果该字段不可为空:
COALESCE(NULLIF(fieldname,0),'N/A')
否则:
CASE CONVERT(VARCHAR,fieldname) WHEN '0' THEN 'N/A' ELSE CONVERT(VARCHAR,fieldname) END
于 2013-10-09T19:54:21.463 回答