SELECT EmployeeID, FirstName, LastName FROM Employees WHERE EmployeeID IN (7, 4)
在观念上说,我愿意使用一个单一字符串参数来查询所传递的IDs,然而,也许作为一个单字符串,不能对IN操作使用一个单一字符串参数。如果那样,SQL语句会这样“WHERE Employee IN (‘7,4’)”,并且数据库因为EmployeeID属于类型int—不属于varchar类型而返回一个错误消息。
SELECT count(*) AS Orders, E.FirstName, E.LastName
FROM Orders O
INNER JOIN Employees E ON O.EmployeeID = E.EmployeeID
WHERE E.EmployeeID IN(SELECT Value FROM fn_Split(@employeeIDs, ','))
GROUP BY FirstName, LastName
ORDER BY count(*) DESC
使用以上查询所需要的是必须建立和传递@employeeIDs参数。这个参数将是用逗号隔开的IDs列表。为了建立该字符串,为了弄明白行是否被用户选择,我们需要使用一个循环,这一循环以行数循环次数,并且检查每一个checkbox控件。如果用户选择了行,通过从表的DataKeys属性中(它被建立在ASPX文件中来指向EmployeeID字段)提取检验人,将关键字保存在employee中。