HQL语句 distinct 的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HQL语句 distinct 的用法相关的知识,希望对你有一定的参考价值。

select distinct hsID from bs_stockin_real 转换成HQL,该怎么写?

HQL语句的distinct使用 2010-04-07 11:57 package test; public class TestDistinct private long id = 0; private int code = 0; private String msg = ""; public TestDistinct() //此处很重要,一定要有一个合适的构造器 public TestDistinct(int code ,String msg) this.code = code; this.msg = msg; public long getId() return id; public void setId(long id) this.id = id; public int getCode() return code; public void setCode(int code) this.code = code; public String getMsg() return msg; public void setMsg(String msg) this.msg = msg; 映射文件省略 HQL语句: select distinct new test.TestDistinct(code,msg) from TestDistinct 参考技术A

1、distinct这个关键字用来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。

2、distinct的只显示一次重复出更的值。 不过这个值出现多少次只显示一次。 select distinct 字段名1,字段名2 from 表格 order by 字段名1 distinct 字段名1 意思是只显示一次字段名1显示的是第一次出现的。 最好和order by 结合使用。

3、表中包含有若干列数据,现在想用某一列进行distinct操作,但是还想在结果中输出所有的列,只要对该列distinct就可以,比如是列test1,表是table,select * from table where test1 in(select distinct(test1) from table)。

参考技术B   String sql = "SELECT distinct r.site FROM Report r where r.site.channel.id=8 and r.keyword.group.profile.id="+profileId ;
  Query countQuery = createQuery(sql);
  List<Site> results = countQuery.setCacheable(true).list();
  return results;
参考技术C select distinct 属性名 from 表名

Hibernate

三套查询之HQL查询(原文再续书接上一回)

where子句部分(查询过滤部分)

Hibernate的where子句部分能支持的运算符,表达式、函数特别多,用法与sql语句是一样的.
常用的表达式、运算符、函数:
=、<、<=、>、>=、!=、and、or、distinct、between...and 、like、concat()、
is null, is not null, is empty, is not empty、second(...),
minute(...), hour(...), day(...), month(...)。
支持EJB-QL 3.0的函数:
trim(), lower(), upper(), length(), abs(), sqrt(), bit_length(), mod()
支持操作集合属性的函数:
size()|size, minelement(), maxelement(), minindex(), maxindex().

1.支持自定义的索引号

 1     //支持自定义的索引号
 2     @Test
 3     public void test5(){
 4         Query query = session.createQuery("select s from Student s where s.name like ?57");
 5         query.setParameter("57", "%ab%");
 6         List<Student> list = query.list();
 7         for (Student student : list) {
 8             System.out.println(student.getId()+student.getName()+student.getTeacher().getTname());
 9         }
10     }

 









以上是关于HQL语句 distinct 的用法的主要内容,如果未能解决你的问题,请参考以下文章

hive的常用HQL语句

SQL SELECT DISTINCT 语句 用法

hql语句cast用法

Hibernate hql语句 find_in_set 用法

Hibernate hql语句 find_in_set 用法

hql语句cast用法详解下