我有一个存储过程,在其中从表中提取数据。该字段中的值可以为NULL或数字值(例如15)。
我希望用$
显示此值,但是我发现这样做有点困难,因为我正在检查字段值isnull
是否是{I1将值设置为0.0
。看起来就是这样。
''Amount Paid''= isnull(tbl_A.AmountPaid,''0.0'')
是否有另一种方法可以使tbl_A.AmountPaid如果不是NULL,则在$前面显示$?
样本数据:93.39
检查它的值不为NULL后,我想将其显示为$ 93.39
答案 0 :(得分:2)
使用串联:
coalesce(concat('$', tbl_A.AmountPaid), '0.0')
如果您想要$0.0
,则可以选择:
coalesce(concat('$', tbl_A.AmountPaid), '$0.0')
或:
concat('$', coalesce(tbl_A.AmountPaid, 0))
答案 1 :(得分:1)
您可以使用类似下面的方法在金额前添加$符号。这样,如果值存在或为NULL,则两种情况都将显示$符号。
SELECT '$ '+CAST(ISNULL(tbl_A.AmountPaid,0.0) AS VARCHAR)
答案 2 :(得分:1)
AmountPaid如果不为NULL,则显示$。
如果数量不为空,以下查询将在前面添加$
。对于NULL值,它将以空$
返回AmoutPaid为空。
SELECT Id,
IIF(CONCAT('', AmountPaid) <> '', CONCAT('$ ', AmountPaid), '') AS AmountPaid
FROM Testtable
如果您想要0.0
而不是空值,请使用
IIF(CONCAT('', AmountPaid) <> '', CONCAT('$ ', AmountPaid), '0.0') AS AmountPaid
包含示例数据的演示
DECLARE @Testtable TABLE (Id int, AmountPaid DECIMAL (9,2));
INSERT INTO @Testtable (Id, AmountPaid) VALUES
(1, 38.89), (2, NULL), (3, 14.2), (4, NULL);
SELECT Id,
IIF(CONCAT('', AmountPaid) <> '', CONCAT('$ ', AmountPaid), '') AS AmountPaid
FROM @Testtable
输出:
Id AmountPaid
--------------
1 $ 38.89
2
3 $ 14.20
4