当前位置: 首页 > 面试题库 >

HQL可以在另一个查询的结果集上进行选择吗?

羊舌志
2023-03-14
问题内容

HQL可以在另一个查询的结果集上进行选择吗?
例如:

SELECT COUNT(*) FROM (SELECT * FROM Table)

我可以在SQL中完成此操作,但是当我在HQL中尝试以上操作时,它只是向我显示语法错误“意外的令牌:(靠近第1行,第22列…”)


问题答案:

HQL确实支持子查询,但是它们只能出现在select或where子句中。您提供的示例最好以HQL的直接陈述形式编写。例如:

select count(*) from table t  (where table is the entity name)

如果查询所涉及的语句比复杂(select * from Table),我建议将该逻辑放入视图中,然后根据该视图创建实体。

对于支持子选择的数据库,Hibernate支持查询中的子查询。子查询必须用括号括起来(通常用SQL聚合函数调用)。甚至允许相关的子查询(在外部查询中引用别名的子查询)。

from DomesticCat as cat
where cat.name not in (
    select name.nickName from Name as name
)


 类似资料:
  • HQL是否可以对另一个查询的结果集进行选择?例如: 我可以在SQL中完成,但当我在HQL中尝试上述操作时,它只显示了语法错误“意外标记:(靠近第1行,第22列…”

  • 问题内容: 我有一个查询。现在,此查询当然返回一个结果集,我想要的是查询此查询的结果集,例如,我只希望上述查询具有唯一的名称。我应该提一下,我知道我可以在Query1中使用,但这只是一个示例,我的实际情况有些不同,我想知道的是是否可以查询上一个查询的结果集。我正在使用SQL Server 2012。 问题答案: 您可以使用该子句

  • 问题内容: 如果返回0行,那么我需要。是否可以在带有条件语句的单个MySQL查询中执行此操作? 编辑: 所有答案均有效,但前提是两个查询均从同一表(或具有相同列数的表)中选择。如果第二个查询应用于具有联接的其他表上怎么办? 让我写下我的查询以使问题更清楚: 第一: 如果第一个结果为空,则: 第二名: 如果返回第一个查询,我将使用第一个查询的行,否则将使用第二个查询。 问题答案: 从我刚刚进行的快速

  • 问题内容: 我想用HQL做这样的事情: 但这给出了一个错误: 有什么办法可以使用HQL和Hibernate做到这一点? 问题答案: 尝试使用 本机SQL 解决方案方法: 需要首先导入以下内容: 然后在代码中的某处: 有关此链接的更多信息,请点击 此处(加入Hibernate查询语言)

  • 我正在尝试查找一个查询唯一的名称列表,并排除两个查询结果之间的共同名称。例如,我想要学生A、B和C所选课程的名称,并从该列表中排除学生D和E所选的课程。在这个问题的答案的帮助下(Neo4j Cypher:从结果中排除某些节点),我尝试了这个密码代码,它是有效的,但我得到的结果是节点。我希望它是一个名称列表,而不是节点。 非常感谢。

  • 问题内容: 我寻求帮助的以下问题:我有两个表 列,, 列,,, 我想将数据从(仅列)复制到(到列)。该均在表中相同(有重复项的ID),所以这就是我要复制到新表,并保持在一个单一的行中的所有数量与每个位置为一列的原因。我正在使用以下查询,但它不起作用 问题答案: 如果为空,请尝试以下插入语句: 如果已经包含值,请尝试以下更新语句: