SELECT MIN(t1.EXAMPLE_NUMBER)
FROM
(
SELECT 1 AS EXAMPLE_NUMBER
UNION ALL
SELECT EXAMPLE_NUMBER + 1
FROM selection.SELECTION
) t1
LEFT OUTER JOIN selection.SELECTION t2
ON t1.EXAMPLE_NUMBER = t2.EXAMPLE_NUMBER
WHERE t2.EXAMPLE_NUMBER IS NULL;
此查询需要查找列的最小未使用整数。让我们说:
1
4
JPAQuery baseQuery = new JPAQuery(em);
SubQueryExpression handleNumberOne = baseQuery.select(Expressions.constant(1));
SubQueryExpression selectAvailableMinNumber = baseQuery.select(selection.exampleNumber.add(1)).from(selection);
用QueryDSL-JPA做这件事有什么可用的方法吗?我不想仅仅因为这个原因而包含querydsl-sql库,我正在寻找JPA风格的解决方案。我这样做的目的是尝试在没有联合的select查询结果中添加常量(在我的例子中为1)。这样我就可以继续下去了。有什么建议吗?
您不必生成所有的数字来获取此信息。
对于除1以外的所有数字,您可以执行以下操作:
select s.example_number + 1
from selection s
where not exists (select 1
from selection s2
where s2.example_number = s.example_number + 1
)
fetch first 1 row only; -- or limit 1
如果您也想在不存在的情况下得到“1”,那么:
select (case when min_en > 1 then 1
else s.example_number + 1
end)
from selection s cross join
(select min(example_number) as min_en from selection) mins
where not exists (select 1
from selection s2
where s2.example_number = s.example_number + 1
)
fetch first 1 row only; -- or limit 1
问题内容: 我有一个联合查询,它从两个不同的总体中获取计数。如何强制结果按查询中写入的顺序而不是升序/降序返回? 我希望第一个结果始终作为第一行返回。这可能吗? 问题答案: 您必须使用ORDER BY子句指定订单。在您的示例中,您可以执行以下操作:
是否可以在JPA中查询“union”,甚至在“Criteria Builder”中查询“union”? 还是使用本机SQL?
我有以下JPA实体(getter、setter和非相关字段省略): 我的目标是使用JPQL或criteriaAPI实现查询,它将返回每天的平均事务量和最大事务量。 产生预期结果的原生SQL查询(MySQL数据库)如下所示: 遗憾的是,不鼓励使用本机 SQL 查询,并且 JPQL 不允许在 where 子句中使用子查询。 提前谢谢你。 附加: 我从以下Spring数据查询开始: 但显然没有用: 我可
我在项目中使用Spring数据JPA。当我要求一份特定导演制作的电影列表时,我得到: 电影拍摄地点: 董事报告人: 人员存储库: 电影控制器: 我不明白为什么当sql查询一切正常工作时,但是当使用表达式搜索存储库时,它却不能正常工作。在阅读了类似的问题后,我没有找到任何解决我问题的东西。 董事实体: 个人实体: 电影实体:
问题内容: 在使用联接进行SQL查询期间,我是否需要使用事务? 我在想类似的东西: (我不知道该语法是否100%正确,但我想您还是可以理解的) 是否存在并非所有应删除的行都不会被删除的风险? 谢谢! 问题答案: 由于这是单个命令(),因此无需显式使用事务。根据定义,SQL命令是原子的,即它将删除符合条件的所有行,或者根本不删除任何错误。 编辑:这个答案在理论上是正确的,并且对于支持ACID的数据库
问题内容: 我正在用SSRS编写一份报告。该数据集填充有MS SQL Server的SQL查询。它使用Union All查询几个相似的表。问题是有一些信息丢失。不同的表适用于不同的工作站点,但是这些表中的任何列都没有站点名称。标识站点的唯一方法是通过表名。在“全部合并”的结果的合并列中,无法分辨出哪些行来自哪个站点。 有没有一种方法可以更改我的查询以在结果中添加一列,该列将具有与每一行相关联的工作