在SQL Server查询中执行循环操作

时间:2012-11-03 14:20:54

标签: sql-server

我在C#SQL Server中编写搜索功能,我的用户可以选择多个作业组,此功能应检查我的作业表中所有选定的组ID,如何在SQL Server中执行循环操作?这是我的表格一般模式:

id int, jobname varchar, jobgroup int.....

我使用以下查询来选择我的工作(基于工作组):

select * from tblJobs where jobgroup='"+userGroups+"'

只有当userGroups包含一个值时才会出现这种情况,但我的用户可以选择多个组ID,例如我的userGroups可以是这样的:5,7,10,20(userGroups可以包含更多的值)

我应该如何在查询中执行循环操作,以便我可以拥有所有匹配的作业? 我应该连接多个查询的返回值,每个查询都选择一个组ID吗?我认为有更好的方法

1 个答案:

答案 0 :(得分:1)

不要在SQL中使用循环 - 循环往往会破坏SQL数据库的性能。

在这种情况下,我相信IN子句可以做到:

SELECT col1, col2 
FROM tblJobs 
WHERE jobgroup IN ('"+userGroups+"', '"+userGroup2+"')