Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 用斜杠连接数字_Sql_Sql Server 2008_Tsql - Fatal编程技术网

Sql 用斜杠连接数字

Sql 用斜杠连接数字,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,得到一个查询,当我尝试运行它时,它在将nvarchar值“0003/”转换为数据类型int时返回转换失败 疑问是 SELECT name, date, CAST(('0' + Location + '/' + ID) AS nvarchar(50)) AS [UniqNumber] FROM Table 在将nvarchar值“0003/”转换为数据类型int时,它返回转换失败。位置和ID都是int。您需要转换输入 '0' + CAST(Location AS VARCHAR(20)) +

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

疑问是

SELECT

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

FROM
Table

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

您需要转换输入

'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

您正在将一个varchar转换为int。很好,只要其中没有那些特殊的字符/字符串。。。我收回我的评论。你为什么不把它替换成
呢?OP想把它的最终输出变成
int
,不是吗?:)@我怀疑这种解释。如果这是他们想要的,那么他们将
/
连接起来似乎很奇怪。谢谢。我以为他想用0替换斜杠,同时将两个变量合并为
int
。这就是为什么我用0替换了/in位置,并将其转换为ID,然后转换为int。我的第一印象是错误的