java - Spring Data JPA-如果在条件之间具有空值,则忽略参数
问题描述
我正在尝试编写以下查询
@Query(value = " " + "SELECT new om.gov.moh.ereferral.model.dto.ClinicalReferralStatisticsDto("
+ "SUM(CASE WHEN B.id = 1 THEN 1 END) AS OPD," + "SUM(CASE WHEN B.id = 2 THEN 1 END) AS IPD,"
+ "SUM(CASE WHEN B.id = 3 THEN 1 END) AS DC," + "SUM(CASE WHEN B.id = 4 THEN 1 END ) AS PROC,"
+ " SUM(CASE WHEN B.id = 5 THEN 1 END) AS SURGERY , SUM (CASE WHEN B.id IN (1,2,3,4,5)THEN 1 END) AS Total)"
+ "FROM RefTbAppTransaction A, RefVwVisitType B "
+ "WHERE A.reqVisitType.id = B.id AND A.toEstCode = :toEstCode "
+ "AND A.referralDate BETWEEN TRUNC(:fromDate) AND TRUNC(:toDate) "
+ "and (COALESCE(:fromEstCode, null) is null or A.fromEstCode in :fromEstCode)"
)
现在它工作正常,但我希望如果 fromDate为 null 将所有数据带到toDate并且如果toDate为 null 将所有数据从fromDate中的选定日期带到当前日期,如果两者都为 null 忽略条件
解决方案
你可以试试下一个模式
where (:fromDate is null or A.referralDate >= :fromDate)
and (:toDate is null or A.referralDate <= :toDate)
推荐阅读
- microsoft-graph-api - 图/站点端点的 HTTP 400 - 使用资源进行身份验证时出错
- ruby - 在 Time.new.to_date.to_time 上可能会发生 nil 取消引用
- css - 垂直滚动捕捉实现不起作用
- r - 如何根据索引向量检查和添加数据框中的缺失行?
- excel - 如何在 Azure 逻辑应用中解析 Excel 电子表格
- python - 如何修复递归列表中的单独输出
- docusignapi - 无法选择要用于提升集成密钥的生产帐户 ID?
- angular - 使用 auth0 lock 登录后如何将用户重定向到他们想要的 url
- scala - 为什么它不能识别 asScala 方法?
- prolog - 如何在不使用列表的情况下对谓词值求和?