1

得到一个查询,当我尝试运行它时,它在将 nvarchar 值“0003/”转换为数据类型 int 时返回转换失败。

查询是

SELECT

name,
date,
CAST(('0' + Location + '/' + ID) AS nvarchar(50)) AS [UniqNumber]

FROM
Table

在此情况下,将 nvarchar 值“0003/”转换为数据类型 int 时返回转换失败。位置和 ID 都是整数。

4

2 回答 2

2

您需要转换输入。

'0' + CAST(Location AS VARCHAR(20)) + '/' + CAST(ID AS VARCHAR(20))

int具有比字符串数据类型更高的数据类型优先级。如果您这样做string + int,它将尝试将字符串转换为整数并添加它,而不是将整数转换为字符串并将其连接起来。

于 2012-12-03T11:47:15.207 回答
0

试试这个,因为你想转换nvarcharint

CAST(REPLACE(Location,'/',0) AS nvarchar(50)) + CAST(ID as nvarchar(50)) AS [UniqNumber]

输出:

0030
于 2012-12-03T11:56:35.220 回答