SQL多条件查询,在搜索中输入空值不会得到任何结果

本文关键字:空值 结果 任何 输入 条件 查询 搜索 SQL | 更新日期: 2023-09-27 18:12:21

net web应用程序与搜索页面我有3个文本框做过滤搜索,如果我在所有文本框中输入文本,结果将显示,但当我只在一个文本框中输入文本,结果不显示我的问题是我如何能够搜索数据,如果我只在一个文本框或两个或所有文本框中输入文本,我的查询显示如下:

SELECT Emp_NUM, Full_name, Mother_Name, Date_of_Birth, Province_of_birth, Job
FROM  [Emp Main Table]
WHERE (Full_name LIKE '%' + @Full_name + '%' OR Full_name IS NULL) AND 
(Mother_Name LIKE '%' + @Mother_Name + '%' OR Mother_Name IS NULL) AND 
(Date_of_Birth LIKE '%' + @Date_of_Birth + '%' OR Date_of_Birth IS NULL)

SQL多条件查询,在搜索中输入空值不会得到任何结果

使用说明:

rtrim(coalesce(@Full_name, '')) = ''

代替:

@Full_name is null

检查空值或空白值

可能是这样的:

SELECT [Emp_NUM]
,[Full_name]
,[Mother_Name]
,[Date_of_Birth]
,[Province_of_birth]
,[Job] 
FROM [Emp Main Table] 
WHERE ([Full_name] LIKE '%'+@Full_name+'%' OR RTRIM(COALESCE(@Full_name,''))='')
AND ([Mother_Name] LIKE '%'+@Mother_Name+'%' OR RTRIM(COALESCE(@Mother_Name,''))='')
AND ([Date_of_Birth] LIKE '%'+@Date_of_Birth+'%' OR RTRIM(COALESCE(@Date_of_Birth,''))='')