执行以下SQL查询时
declare @OrderNumber AS VARCHAR(10)
set @OrderNumber=('41973600','41973605')
SELECT productid
FROM [order]
sono LIKE @OrderNumber
我收到了错误:
Msg 102,Level 15,State 1,Line 3
附近的语法不正确
','附近的语法不正确。
Msg 102,Level 15,State 1,Line 4
'@OrderNumber'
答案 0 :(得分:0)
听起来你想要完成的事情不可能以这种方式完成。你不能将varchar(10)设置为多个值,因为你需要一个“IN”子句,但这里有不同的方法解决你的问题:
我不知道“sono”是什么,但它似乎是基于你的陈述的列名,所以:
SELECT productid FROM [order] where sono in ('41973600','41973605')
如果您正在寻找通配符,则可能是另一种选择:
SELECT productid FROM [order] where sono like '%41973600%' or sono like '%41973605%'
最后,如果你真的想要/需要声明@OrderNumber,那么你需要这样做:
declare @OrderNumber AS VARCHAR(10)
set @OrderNumber='41973600'
SELECT productid FROM [order] where sono= @OrderNumber
declare @OrderNumber AS VARCHAR(10)
set @OrderNumber='41973605'
SELECT productid FROM [order] where sono= @OrderNumber
现在,如果“sono”是该表的别名,那么您可能希望:
SELECT productid FROM [order] sono where sono.productit in ('41973600','41973605')
SELECT productid FROM [order] sono where sono.productid like '%41973600%' or son.productid like '%41973605%'
declare @OrderNumber AS VARCHAR(10)
set @OrderNumber='41973600'
SELECT productid FROM [order] sono where sono.productid= @OrderNumber
declare @OrderNumber AS VARCHAR(10)
set @OrderNumber='41973605'
SELECT productid FROM [order] sono where sono.productid= @OrderNumber
我希望这会有所帮助。