请教where id in(1,2,3) 这种参数怎么做到存储过程里去?

magicMlj 2004-10-28 03:45:31
????
...全文
81 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
北京的雾霾天 2004-10-29
  • 打赏
  • 举报
回复
看个例子先(只提供一个思路)?

ALTER PROCEDURE dbo.StoreProcedure1
(
@OWNER_IDS nvarchar(256), --格式如:'101|103|105|121|'
@SP nvarchar(256)--格式如:'|'
)

AS
-- SET NOCOUNT ON
DECLARE @tmpTable TABLE (ID INT)
DECLARE @I INT

SET @I = 0
WHILE CHARINDEX( @SP, @OWNER_IDS, @I) > 0 --循环
BEGIN
INSERT INTO @tmpTable (ID)
VALUES(SUBSTRING(@OWNER_IDS, @I, CHARINDEX(@SP, @OWNER_IDS, @I) - @I))

SET @I = CHARINDEX(@SP, @OWNER_IDS, @I) + 1
END


SELECT * FROM SOME_TABLE WHERE (ID in (SELECT ID FROM @tmpTable))

RETURN
生活真美好 2004-10-29
  • 打赏
  • 举报
回复
gz
北京的雾霾天 2004-10-28
  • 打赏
  • 举报
回复
可以用一个字符串传入,然后在存储过程中分解到成一个表变量使用.比如可以传一个'123|13|523|46|'这样的字符串时去.分解后用insert到一个临时表里,然后用select从临时表数据.

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧