我有一个存储过程如何通过项目作为参数列表存储过程
create PROCEDURE [dbo].[SP]
(
@OrderList varchar(500)
)
AS
Begin
select *
from table
where id in ('+ @OrderList +')
在这里,我路过orderlist ....
当我执行这样
exec sp 'iss005,iss006'
我没有收到数据
但是当我硬编码像这样...
select * from table where id in ('iss005','iss006')
然后我得到的数据...
谢谢
是 - 当然 - 什么是你的问题? –
当你对你的值进行“硬编码”时,你在** IN子句中提供了**列表**。然而,当你传递你的参数时,你提供**只有一个字符串**,它恰好包含逗号分隔的文本 - 但它仍然只是一个单一的字符串 - ** NOT **字符串列表为“IN”语句需要......您需要在答案中使用其中一种方法 - 将您的参数字符串变成**列表中的字符串列表** –