如何解决尝试格式化旧版代码的SQL语法以包含格式的逗号,但返回错误
当我在此查询上运行自定义函数以格式化此查询以使其具有逗号时。我遇到错误:
将varchar值'0.00000'转换为数据类型int时转换失败。
这是未修改的有效查询,它返回2174 ...我真正希望的结果是2174。请转到下面的函数,该函数显示了我在何处添加函数RemoteActor
。它可以编译,但是那是当我尝试生成报告时收到返回的错误。
dbo.fn_FormatWithCommas()
这就是我想要做的。请注意,这里添加了功能Convert(
int,ROUND(
Case
When CONVERT(
VARCHAR(500),DECRYPTBYPAsspHRASE(@key,CY.PTIE_Local)
) = '' Then 0
Else Convert(
numeric,CONVERT(
VARCHAR(500),CY.PTIE_Local)
)
) * (
SELECT
ER.Exchange_Rate
FROM
Exchange_Rates ER
WHERE
ER.Currency_Code = ISNULL(
convert(
VARCHAR(500),CY.Local_Currency_Code)
),'USD'
)
AND ER.Year = dbo.getCurrentYear()
)
End,0
)
) as 'CY PTIE (USD)',
dbo.fn_FormatWithCommas()
请更改代码,并告诉/告诉我为什么我弄错了。我在所有功能之间解密时遇到问题。我添加了一个漂亮的格式。希望对您有帮助。
解决方法
我通过将整个脚本包装成FORMAT(VALUE,'N0')
来做到这一点FORMAT(Convert(int,ROUND(Case When CONVERT(VARCHAR(500),DECRYPTBYPASSPHRASE(@key,CY.PTIE_Local)) = '' Then 0
Else Convert(numeric,CONVERT(VARCHAR(500),CY.PTIE_Local)))*
(SELECT ER.Exchange_Rate FROM Exchange_Rates ER WHERE ER.Currency_Code =
ISNULL(convert(VARCHAR(500),CY.Local_Currency_Code)),'USD')
AND ER.Year = dbo.getCurrentYear()) End,0)),'N0') as 'CY PTIE (USD)',
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。