将参数传递给SQL Server中的IN子句

时间:2011-01-18 10:40:55

标签: sql-server-2005 stored-procedures in-clause

  

可能重复:
  Parameterizing a SQL IN clause?
  SQL Server - In clause with a declared variable

您好,

我面临将问题传递给'IN'子句的问题。我使用以下查询。

查询:

SELECT Topics.Topic_Id  FROM Topics 
    Where Topic_Description IN (''+ @Topics +'')    

当参数具有单个值时,此查询有效。我的参数可以用逗号分隔多个值,例如:'one','two','three','four'。但是只要有多个参数,查询就会失败。怎么克服这个?请建议。

由于

我必须将上述内容用作存储过程的一部分。我必须将select查询的结果带到如下所示的游标中:

DECLARE cur_TopicIDs CURSOR FOR    SELECT Topics.Topic_Id FROM Topics Where    Topic_Description IN(''+ @Topics +'')....等

在这种情况下,我如何使用其他链接中建议的动态sp

2 个答案:

答案 0 :(得分:3)

使用此处的任何拆分功能: http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=50648

答案 1 :(得分:0)

您必须在@Topics中创建格式为one','two','three的字符串作为值。

编辑: - 然后,您需要使用EXEC sp_executesql来执行您的sql语句。答案在消费者给出的链接中正确解释了您的问题。