检查是否值[ISNULL]之后,需要连接到字段值



我有一个存储过程,我从表中取出数据。字段中的值可以为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;>带有样本数据的小提琴

最新更新