首页 > 解决方案 > SQL Server 中的可选搜索条件

问题描述

我正在尝试创建一个查询,当您不在@date变量中输入值时,它将在 SQL 中显示结果。

declare @Holiday varchar(50), @Date date
set @holiday = null
set @date = null

Select *
from tbl_Holiday
where Holiday like '%' + isnull(@Holiday,'') + '%'
and HDate = @Date

以上代码是我正在使用的代码。当我评论最后一行代码时,它工作正常,但我需要找到一种方法来使用日期进行搜索。感谢您以后的回复。

标签: sqlsql-server

解决方案


有几种方法可以做到这一点。我会保持简单:

declare @Holiday varchar(50), @Date integer
set @holiday = Null
set @Date = Null

IF @Date !='' or @Date is NOT NULL
    BEGIN
        Select *
        from tbl_Holiday
        where Holiday like '%' + isnull(@Holiday,'') + '%'
        and HDate = @Date
    END
ELSE 
BEGIN
        Select TOP (5)*
        from tbl_Holiday
END 

推荐阅读