sql—以多种方式使用多个参数

ve7v8dk2  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(367)

我有一个带列的sql表。这些列包括name、empnum、status、dept、shift、hiredate、terminatedate。我想创建一个查询,允许我使用任何可用的参数选项来查询此数据。所以name in(@name),empnum in(@empnum),hiredate在@hirestart和@hireend之间,等等。但不是每次都会使用所有选项。我尝试使用“like”,但这对我的日期参数没有帮助。我不知道该用什么。任何帮助都将不胜感激。

Select *
FROM EmployeeData
Where Name like isnull(@Name,'%') and EmpNum like isnull(@EmpNum,'%')
jtoj6r0c

jtoj6r0c1#

您可以使用如下逻辑:

where (name = @name or @name is null) and
      (empnum = @empnum or @empnum is null) and
      . . .

这适用于单个值。如果确实需要列表,可以使用:

where (name in (select value from string_split(@name, ',') or @name is null) and
      (empnum in (select value from string_split(@empnum, ',') or @empnum is null)

相关问题