相关疑难解决方法(0)

参数化SQL IN子句

如何参数化包含IN具有可变数量参数的子句的查询,比如这个?

SELECT * FROM Tags 
WHERE Name IN ('ruby','rails','scruffy','rubyonrails')
ORDER BY Count DESC
Run Code Online (Sandbox Code Playgroud)

在此查询中,参数的数量可以是1到5之间的任何值.

我不希望为此(或XML)使用专用存储过程,但如果有一些特定于SQL Server 2008的优雅方式,我对此持开放态度.

sql sql-server parameters

1020
推荐指数
29
解决办法
33万
查看次数

将一个充满逗号分隔值的varchar传递给SQL Server IN函数

使用Like和In 复制
动态SQL逗号分隔值查询
参数化查询

我有一个SQL Server存储过程,我想将一个varchar逗号分隔的值传递给一个IN函数.例如:

DECLARE @Ids varchar(50);
SET @Ids = '1,2,3,5,4,6,7,98,234';

SELECT * 
FROM sometable 
WHERE tableid IN (@Ids);
Run Code Online (Sandbox Code Playgroud)

这当然不起作用.我收到错误:

将varchar值'1,2,3,5,4,6,7,98,234'转换为数据类型int时转换失败.

如何在不诉诸构建动态SQL的情况下完成此任务(或相对类似的东西)?

sql t-sql sql-server sql-in

53
推荐指数
9
解决办法
17万
查看次数

标签 统计

sql ×2

sql-server ×2

parameters ×1

sql-in ×1

t-sql ×1