繁体   English   中英

如何在 SQL Server 中将 nvarchar 转换为数字

[英]How to convert nvarchar to numeric in SQL Server

如何将nvarchar转换为numeric

我收到此错误:

将数据类型 nvarchar 转换为数字时出错。

这是我的查询

SELECT 
    strIpay88Amt, 
    CONVERT(NUMERIC(18, 2), strIpay88Amt) AS iPay
FROM
    tblCurrTrxMaster 

假设 strIpay88Amt 列中有字符串值。 您可以使用以下内容仅转换数值。

select cast(strIpay88Amt as numeric) from tblCurrTrxMaster 
where ISNUMERIC(strIpay88Amt) = 1

然后获取字符串值。

select strIpay88Amt from tblCurrTrxMaster where ISNUMERIC(strIpay88Amt) = 0

尝试强制转换语法:

 SELECT strIpay88Amt, CAST(strIpay88Amt AS NUMERIC) AS iPay FROM tblCurrTrxMaster 

您的表格中必须有一些不是有效数字的条目,因此您的转换失败 - 这是理所当然的。

所以为了找到这些条目,你可以试试这个:

SELECT 
    strIpay88Amt, 
    TRY_CONVERT(NUMERIC(18, 2), strIpay88Amt) AS iPay
FROM
    dbo.tblCurrTrxMaster 
WHERE
    TRY_CONVERT(NUMERIC(18, 2), strIpay88Amt) IS NULL

这将使用TRY_CONVERT函数来尝试转换 - 并且使用此WHERE子句,您将只会取回所有无法转换为有效NUMERIC条目。

虽然NULL会正确地“转换”为数字,但例如空字符串'' )已经会导致错误......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM