2016-01-12 36 views
2

我有这样的SQL Server查询:如何将SQL Server中的select查询中的数组传递给IN运算符作为参数?

SELECT * 
FROM Customers 
WHERE CustomerID IN ('4','11',"16"); 

而是传递一个参数('4','11',"16")这样的,我想创建一个这样的数组变量[4,11,16]。我想这发送到上面的查询。我怎样才能做到这一点?我尝试了下面的查询,但它不起作用。

有人可以帮我吗?

SELECT * 
FROM Customers 
WHERE CustomerID IN (['4','11',"16"]); 
+2

T-SQL没有数组的概念;你可以在客户端构造字符串或者使用表值参数和IN(SELECT ...) - 规范性阅读:[SQL Server 2005及更高版本中的数组和列表](http://www.sommarskog.se /arrays-in-sql-2005.html) –

回答

-1

您最初的查询是正确的,你为什么要改变它的版本将在语法失败,目前还不清楚......?

如果您已经有一个数组,那么只需使用连接或等效项输出您需要的逗号分隔列表即可。

+1

欢迎来到Stackoverflow;你应该在评论中提供这样的答案,因为它不提供太多新信息。 –

+0

我同意你的意见,并且将来会这样做。 – Stuart

+0

为什么因为我有一个整数数组的客户id,我想将这个数组传递给查询 – John

相关问题