当前位置: 首页 > 知识库问答 >
问题:

在case when then的情况下如何编写hql子查询?

冀冯浩
2023-03-14
SELECT rd.rdKey AS rdKey,
(
    CASE
      WHEN 
          replace (translate(rd.rdOpr1Value,'0123456789','0000000000'),'0','') is null
      THEN  
          COALESCE
          (
             SELECT c.isForeighn FROM ColumnMap c WHERE                              c.columnmapkey=rd.rdOpr1Value,'N'
          )
      ELSE 'N'
   END
) AS foreignYN,
rd.rdSetNO AS rdSetNO,
rd.createdUser AS createdUser,
rd.createdDateTime AS createdDateTime,
rd.updatedUser AS updatedUser,
rd.updatedDateTime AS updatedDateTime
FROM RuleDetail rd 
where rd.rdKey = 1;

对于上面的查询,我得到了错误

共有1个答案

何升
2023-03-14

Hibernate中不支持此功能。但确实存在一种变通方法。在数据库中创建一个视图,然后使用HQL通过Java获取结果。

创建或替换force view VW_ENTITY_VALUE(entityValue)作为select大小写(当.EntityId为null时,然后使用'invalid'else(从tblName b中选择b.entityName,其中b.entityId=A.entityId)从tblEntity A中结束;

摘自HQL文档:http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html#queryhql-subqueries

14.13.子查询

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

from Cat as fatcat where fatcat.weight>(从DomesticCat Cat中选择avg(Cat.weight))from DomesticCat as Cat where Cat.Name=some(从Name as Name中选择Name.nickname)from DomesticCat as Cat where not exists(从Cat as mate where mate.mate=Cat)from DomesticCat as Cat where Cat.Name not in(从Name as Name中选择Name.nickname)select Cat.id,(从Cat.kiten kit中选择max(

 类似资料:
  • 我对冬眠很陌生。 所有实体都与表名和列名相同。这个查询在mysql中运行良好。我想用HQL编写这个查询。 我将如何在hql中编写这个?请任何人帮帮我。

  • 我有一个对象,其中有的对象与映射。对象有一个方法来获取给定问题的评论。 我想通过一次获取有限数量的评论来分页。 如果我写了一个对象,那么我就可以通过和。但我的问题是,如果可能的话,如何在不必编写

  • 问题内容: 我正在努力编写一个HQL查询以在表中插入新记录。我已经看到了一些插入查询,如下所示,但我不想从下面的代码插入另一个表中的数据。 例如,我有一个表“ User”,其中有三个字段,例如名称,年龄,数字,并且有该用户表的实体。插入查询将是什么? 问题答案: 在HQL中,仅支持INSERT INTO…SELECT…。没有INSERT INTO…VALUES。HQL仅支持从另一个表插入。 因此可

  • 我是HQL的新手。请告诉我如何在HQL中编写这个查询。 我的SQL方法是 我的SQL查询是 其中,id和日期是动态的 请在Hql查询中转换此sql查询

  • 如果您说这是不可能的,那么我必须坚持HQL,我会在这里张贴的查询,我将需要您的帮助写下基于HQL的类(表)创建和基于HQL的查询字符串。 此外,如果您可以,请给我一个示例查询与夫妇或3个表联接,以及如何设置参数的SQL。