[英]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.