declare @OrderID varchar(500)
set @orderid ='''200771413337426'''---当值是这样的时候是可以正常执行的
set @OrderID=SUBSTRING(@OrderID,2,len(@OrderID)-2)
select UserID from tshoppingcar where orderid in(''+@OrderID+'')

解决方案 »

  1.   

    --改用CharIndex吧,否則用In需要使用動態SQL語句declare @OrderID varchar(500)
    set @orderid ='200771413337426,200771413385811'
    select UserID from tt where CharIndex(orderid, @OrderID) > 0
      

  2.   


    --或者Like
    declare @OrderID varchar(500)
    set @orderid ='200771413337426,200771413385811'
    select UserID from tt where @OrderID Like '%' + orderid + '%'
      

  3.   

    declare @OrderID varchar(500)
    declare @sql varchar(8000)
    set @orderid ='''200771413337426'',''200771413385811'''
    set @sql=isnull(@sql,'')+'select UserID from tt where orderid in('+@OrderID+')'exec(@sql)