我想将一个表的所有行插入到另一个表中,并且我还想将一个 nvarchar
字段转换为 bigint
,但是当我使用 convert(bigint, col1)
时,SQL Server 显示以下错误:
将数据类型 nvarchar 转换为 bigint 时出错
如何解决这个问题?
我想将一个表的所有行插入到另一个表中,并且我还想将一个 nvarchar
字段转换为 bigint
,但是当我使用 convert(bigint, col1)
时,SQL Server 显示以下错误:
将数据类型 nvarchar 转换为 bigint 时出错
如何解决这个问题?
ISNUMERIC
函数来确定哪些行确实是数值类型:UPDATE dbo.YourTable
SET BigIntColumn = CAST(NVarcharColumn AS BIGINT)
WHERE ISNUMERIC(NVarcharColumn) = 1
这将转换那些可以转换的行 - 其他需要手动处理。
在这里,我将列的navrchar值转换为bigInt,然后执行下面找到的两个列的加法:
SELECT (CAST(col1 AS BIGINT) + CAST(col2 AS BIGINT)) AS TotalValue from tableName
CAST(CAST(col1 as NUMERIC) as BIGINT)
你应该将 bigint 转换为 nvarchar,而不是相反
使用 cast(Other_Column_name as nvarchar),而不是 cast(Column_Name as bigint)