【发布时间】:2018-11-08 08:20:46
【问题描述】:
我有一个临时表,我在其中将列的所有值创建为逗号分隔的列表。我面临的问题是当我输入该 csv 变量时出现错误 例如
Declare @testvar varchar (max)
Select @testvar = stuff (( select (','''+ cast(var1 as varchar(1024)+'''')
From # Temp for xmlpath('')),1,2,'') from #Temp
Select * from tab1 where col1 in (@testvar)
这是在查询中附加单引号,我收到类似的错误 将 varchar 值 ''1','2'........ 转换为 int 时转换失败
对此有任何建议
【问题讨论】:
-
您使用的是哪个 dbms?
-
# Temp语法错误 -
您需要提供更多信息。至少。请提供确切的错误消息(您写“类似错误”。请复制/粘贴完整消息。还向我们展示#temp 的样子。列名和数据类型。
-
这是一个错字,它实际上是#Temp 我使用的是 sql server 2014
-
你为什么不直接做
Select * from tab1 where col1 in (select var1 from #Temp)?
标签: sql sql-server tsql sql-server-2014