得到一个查询,当我尝试运行它时,它在将 nvarchar 值“0003/”转换为数据类型 int 时返回转换失败。
查询是
SELECT
name,
date,
CAST(('0' + Location + '/' + ID) AS nvarchar(50)) AS [UniqNumber]
FROM
Table
在此情况下,将 nvarchar 值“0003/”转换为数据类型 int 时返回转换失败。位置和 ID 都是整数。
得到一个查询,当我尝试运行它时,它在将 nvarchar 值“0003/”转换为数据类型 int 时返回转换失败。
查询是
SELECT
name,
date,
CAST(('0' + Location + '/' + ID) AS nvarchar(50)) AS [UniqNumber]
FROM
Table
在此情况下,将 nvarchar 值“0003/”转换为数据类型 int 时返回转换失败。位置和 ID 都是整数。
您需要转换输入。
'0' + CAST(Location AS VARCHAR(20)) + '/' + CAST(ID AS VARCHAR(20))
int
具有比字符串数据类型更高的数据类型优先级。如果您这样做string + int
,它将尝试将字符串转换为整数并添加它,而不是将整数转换为字符串并将其连接起来。
试试这个,因为你想转换nvarchar
成int
CAST(REPLACE(Location,'/',0) AS nvarchar(50)) + CAST(ID as nvarchar(50)) AS [UniqNumber]
输出:
0030