我有一个存储过程,我从表中取出数据。字段中的值可以为null或数值值(例如:15(。
我希望使用$
显示此值,但是我发现很难做到这一点,因为我正在检查FieldValue isnull
是否(如果是(,我将值设置为0.0
。这就是它的样子。
''Amount Paid''= isnull(tbl_A.AmountPaid,''0.0'')
是否有另一种方法可以这样做,以便tbl_a.amountpaid在其前面以$为单位显示?
样本数据:93.39
一旦检查值不是null
$ 93.39
使用串联:
coalesce(concat('$', tbl_A.AmountPaid), '0.0')
如果您想要$0.0
,则要么:
coalesce(concat('$', tbl_A.AmountPaid), '$0.0')
或:
concat('$', coalesce(tbl_A.AmountPaid, 0))
您可以在金额之前使用下面的$标志。这样,如果有值,则$符号将显示两种情况下的情况。
。SELECT '$ '+CAST(ISNULL(tbl_A.AmountPaid,0.0) AS VARCHAR)
金额付款以$在其前面显示,如果它不是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
db&lt;>带有样本数据的小提琴