sql server 2008 -使用sql存储过程进行高级可选参数查询



我正在开发一个人力资源管理web应用程序。现在我必须在这张申请表上做一份考勤报告。为此,我们有一个高级搜索报表表单,其中我们有EmployeeId、DateFrom和DateTo字段来搜索日期报表。我想使用存储过程来搜索考勤报告。

employeeId、DateFrom和DateTo所面临的问题是不具有可比性的。但是我们必须根据给定的输入来搜索它可以只有employeeId,也可以有employeeId和DateFrom,有些可以是employeeId, DateFrom, DateTo

当请求到达存储过程时,如果任何参数不存在,我必须解决null值希望你能理解我的处境……

CREATE PROCEDURE [dbo].[USP_Employees_Search]
     @EmployeeId            Int = Null
    ,@FromDate              Date = Null
    ,@ToDate                Date = Null
AS
BEGIN
    Set Nocount On;
    Select  *
    From    dbo.Employees As e With (Nolock)
    Where   (Isnull(@EmployeeId,0) = 0 Or e.EmployeeId = @EmployeeId)
            And (@FromDate Is Null Or e.[someDateAttribute] >= @FromDate)
            And (@ToDate Is Null Or e.[someDateAttribute] <= @Todate)
END
GO

最新更新