Sql server 从格式化的TSQL语句生成0或0.00 NULL的货币值

Sql server 从格式化的TSQL语句生成0或0.00 NULL的货币值,sql-server,tsql,Sql Server,Tsql,我有下面的SQL语句 SELECT DISTINCT ItemID, Taxlines = STUFF((SELECT CHAR(182) + RTRIM(IsNull(TT.Code, '')) + '$' + RTRIM(IsNull(TaxLink.BaseAmount, '')) + '$' + RTRIM(IsNull(TaxLink.BaseQuantity, '')) + '$' + RTRIM(IsNull(TR.Code, ''

我有下面的SQL语句

SELECT DISTINCT
    ItemID,
    Taxlines = STUFF((SELECT CHAR(182) + RTRIM(IsNull(TT.Code, '')) + '$' + RTRIM(IsNull(TaxLink.BaseAmount, '')) + 
                '$' + RTRIM(IsNull(TaxLink.BaseQuantity, '')) + '$' + RTRIM(IsNull(TR.Code, '')) + '$' + RTRIM(IsNull(TOC.Code, '')) + 
                '$' + RTRIM(IsNull(TaxLink.Amount, '')) + '$' + RTRIM(IsNull(TPM.Code, ''))
                      FROM 
                          [Declaration].[Taxline] [TaxLink] 
                      LEFT OUTER JOIN 
                          Declaration.TaxType TT ON TT.TaxTypeID = TaxLink.TypeID
                      LEFT OUTER JOIN 
                          Declaration.TaxRate TR ON TR.TaxRateID = TaxLink.RateID
                      LEFT OUTER JOIN 
                          Declaration.TaxOverrideCode TOC ON TOC.TaxOverrideCodeID = TaxLink.OverrideCodeID
                      LEFT OUTER JOIN 
                          Declaration.TaxPaymentMethod TPM ON TPM.TaxPaymentMethodID = TaxLink.PaymentMethodID
                      WHERE 
                          Tax.ItemID = ItemID 
                      FOR XML PATH('')), 1, 1, '') 
FROM 
    [Declaration].[Taxline] Tax
WHERE 
    Tax.ItemID IS NOT NULL
产生如下输出:

A00$0.00$0$F$$0.00$D¶B00$0.00$0$S$$0.00$D
我需要将任何货币值0或0.00替换为NULL或“”不介意哪个

这不包括A00或B00,但我需要保留$separator

因此,上面的示例需要如下所示:

A00$$$F$$$D¶B00$$0$S$$$D 
来自【申报】【税种】税

Select Distinct ItemID,
            Taxlines = STUFF(( Select CHAR(182) + CASE WHEN TT.Code IS NULL THEN '' ELSE TT.Code END
               + '$' + RTRIM(CASE WHEN TaxLink.BaseAmount IS NULL THEN '' ELSE CAST(TaxLink.BaseAmount AS nvarchar(15)) END)
               + '$' + RTRIM(CASE WHEN TaxLink.BaseQuantity IS NULL THEN '' ELSE CAST(CAST(TaxLink.BaseQuantity AS decimal(15,3)) AS nvarchar(15)) END)
               + '$' + RTRIM(CASE WHEN TR.Code IS NULL THEN '' ELSE TR.Code END)
               + '$' + RTRIM(CASE WHEN TOC.Code IS NULL THEN '' ELSE TOC.Code END
               + '$' + RTRIM(CASE WHEN TaxLink.Amount IS NULL THEN '' ELSE CAST(TaxLink.Amount AS nvarchar(15)) END)
               + '$' + RTRIM(CASE WHEN TPM.Code IS NULL THEN '' ELSE TPM.Code END))
                            FROM [Declaration].[Taxline] [TaxLink]
                            LEFT OUTER JOIN Declaration.TaxType TT on TT.TaxTypeID = TaxLink.TypeID
                            LEFT OUTER JOIN Declaration.TaxRate TR on TR.TaxRateID = TaxLink.RateID
                            LEFT OUTER JOIN Declaration.TaxOverrideCode TOC on TOC.TaxOverrideCodeID = TaxLink.OverrideCodeID
                            LEFT OUTER JOIN Declaration.TaxPaymentMethod TPM on TPM.TaxPaymentMethodID = TaxLink.PaymentMethodID
                            WHERE Tax.ItemID = ItemID
                            FOR XML PATH('')
                            ), 1, 1, '')