Sql server 自定义文本列数据类型错误

Sql server 自定义文本列数据类型错误,sql-server,casting,varchar,Sql Server,Casting,Varchar,我想创建一个自定义列,它的URL由自定义文本和sql表中的列组成。我以前做过,但现在遇到了一个错误,不确定如何解决它 select *, 'www.google.com/' | oporid from #sqltable 我收到的错误是“将数据类型varchar转换为bigint时出错”。然后我进行以下更改: select *, cast('www.google.com/' | oporid as varchar) from #sqltable 但是,即使将自定义列强制转换为varchar

我想创建一个自定义列,它的URL由自定义文本和sql表中的列组成。我以前做过,但现在遇到了一个错误,不确定如何解决它

select *, 'www.google.com/' | oporid
from #sqltable
我收到的错误是“将数据类型varchar转换为bigint时出错”。然后我进行以下更改:

select *, cast('www.google.com/' | oporid as varchar) 
from #sqltable
但是,即使将自定义列强制转换为varchar,我也会收到完全相同的错误


当我简单地创建一个自定义文本列时,它工作得很好,但是当我想要合并OpOrID来创建URL(www.google.com/OpOrID)时,会出现错误。

请告诉我它不是这么简单

select *, 'www.google.com/' + oporid as url2
from #sqltable

如果不是varchar,则使用concat或cast

您在这里想做什么?我看得越多,它就变得越混乱。|是t-sql中的按位OR运算符。也许您正在尝试进行字符串连接?使用+符号位或的,与字符串不兼容。即使您强制转换为二进制,您的意思是这样吗?我试图创建一个自定义列,其输出将我编写的自定义文本(www.google.com/)与我现有表(OpOrID)中的数据连接起来,因此结果是一个列www.google.com/oporidcontcat(val1,val2,…),我想这就是他们想要的。唯一的问题可能是oporid可能是一个数字,因此它需要强制转换/转换。但我真的认为这很简单(从上下文来看,我高度怀疑瓦查尔,你很可能是对的。很难说清楚,因为细节很少int@George然后使用concat或cast。您认为答案不可接受吗?