我有下表:
item_ID | item_Name | Amount
---------|-------------|-------
12 | apple | $1
13 | orange | <null>
14 | grapes | $2.5
对于'orange'项的'null'值,我想用字符串'N / A'代替它,即使数据来自的列是十进制。有可能吗?
我尝试如下输入该列的表达式:
=IIF(IsNothing(Fields!Amount.Value), Sum(Fields!Amount.Value), 'N/A')
但是我遇到了一个错误,报告失败了。
答案 0 :(得分:3)
如果在SSRS的报表层处理此问题,您将获得一些好处:例如,数据导出将这些导出仍以数字形式导出。
设置与以下类似的文本框的值
=IIF( IsNothing(Fields!Cost.Value ), "N/A",Fields!Cost.Value)
答案 1 :(得分:1)
以下是将coalesce
与cast
结合使用的一种选择:
select item_ID, item_Name, coalesce(cast(cost as varchar(100)), 'N/A') as cost
from yourtable;
答案 2 :(得分:1)
您还可以使用ISNULL函数
SELECT cost = ISNULL( TRY_CAST( cost as varchar(50), 'N/A' )