我想将一个表的所有行插入另一个表,我还想将一个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
这将转换那些可以转换的行 - 其他行需要手动处理。
您应该将 bigint 转换为 nvarchar,反之亦然 cast(Other_Column_name as nvarchar) not cast (Column_Name as bigint)
你可以试试这个:
CAST(CAST(col1 as NUMERIC) as BIGINT)
在这里,我将列的 navrchar 值转换为 bigInt ,然后执行两列的加法发现打击:
SELECT (CAST(col1 AS BIGINT) + CAST(col2 AS BIGINT)) AS TotalValue from tableName