相关疑难解决方法(0)

将一个充满逗号分隔值的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万
查看次数

在IN子句中使用CASE语句

可以在IN子句中使用CASE语句吗?

这是我试图正确编译的简化版本:

SELECT * FROM MyTable 
WHERE StatusID IN (
CASE WHEN @StatusID = 99 THEN (5, 11, 13)
ELSE (@StatusID) END )
Run Code Online (Sandbox Code Playgroud)

谢谢!

sql t-sql sql-server sql-server-2008

11
推荐指数
2
解决办法
2万
查看次数

标签 统计

sql ×2

sql-server ×2

t-sql ×2

sql-in ×1

sql-server-2008 ×1