高级可选参数使用SQL中的存储过程进行搜索

时间:2015-06-10 07:36:35

标签: sql-server-2008 stored-procedures

我正在开发HRM网络应用程序。现在我必须在此应用程序中制作出席报告。 为此我们有一个高级搜索报告表格,我们有一个EmployeeId,DateFrom和DateTo字段来搜索日期明智的报告。 我想使用存储过程来搜索关注度报告。

我面对employeeId,DateFrom和DateTo的问题不是比较的。但我们必须搜索给定的输入 它可能只有employeeId,或者可能是employeeId和DateFrom,有些可能是employeeId,DateFrom,DateTo

当请求进入存储过程时,当必须存在任何参数时,我必须解决空值 希望你了解我的情况......任何人都可以帮助我...

1 个答案:

答案 0 :(得分:1)

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