微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试格式化旧版代码的SQL语法以包含格式的逗号,但返回错误

如何解决尝试格式化旧版代码的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 举报,一经查实,本站将立刻删除。