我有两个来自用户的will参数(非强制性),比如start_date和end_ date。情况1:如果用户没有给予这两个值,则query将获取值情况2:用户给予开始期间,然后查询大于或等于开始日期的获取值情况3:用户给出两者,然后查询获取记录之间的情况4:用户仅给予结束日期,则查询需要获取小于或等于结束日期的值
我的查询
select Reg_date,employees,years from employee
Where
IF start_date != ""
IF end_date != ""
Where Reg_date >= start_date and Reg_date <= end_date
Else
Where Reg_date >= start_date
END
ELSE
IF end_date != ""
Where Reg_date <= End_date
End
END
你能请任何人是有语法我使用是正确的。.我需要在服务器中执行此操作。所以我无法在任何test_env中运行。用户可以给予start_date和end_date值。..
1条答案
按热度按时间dkqlctbz1#
IF
语句是一个流控制结构,它在过程代码中起作用,而不是在查询中。在这里,您通常会在查询的
where
子句中使用布尔逻辑。其中
:start_date
和:end_date
表示查询的参数。我不确定在伪代码中使用空字符串来表示“丢失”参数;可能会期望
null
值(字符串和日期是两种不同的数据类型)。