gpt4 book ai didi

mysql - Spring Data JPQL 如何使用动态where子句创建查询?

转载 作者:行者123 更新时间:2023-11-29 16:31:16 25 4
gpt4 key购买 nike

我正在创建自定义 JPQL 查询来获取一些数据。在某些情况下,我想根据参数值是否非空添加一个 where 子句。

例如等效的 SQL 查询:

//If parameter status is not null.
SELECT sum(A.sal) FROM TABLE A WHERE A.STATUS = 'X' GROUP BY A.CURRENCY;

//else
SELECT sum(A.sal) FROM TABLE A GROUP BY A.CURRENCY;

有人可以帮我吗?

最佳答案

两个查询:

//If parameter status is not null.
SELECT sum(A.sal) FROM TABLE A WHERE A.STATUS = 'X' GROUP BY A.CURRENCY;

//else
SELECT sum(A.sal) FROM TABLE A GROUP BY A.CURRENCY;

可以压缩为一。

首先让我们声明一个命名参数statusParam。此参数可以采用任何值(例如上面的 'X'null)。因此上面的两个查询可以重写为:

SELECT sum(A.sal) FROM A WHERE (A.STATUS = :statusParam OR :statusParam is null ) GROUP BY A.CURRENCY;

关于mysql - Spring Data JPQL 如何使用动态where子句创建查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53864092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com