裝潢、搬家、清潔、打蠟、粉刷、招牌、抓漏、冷氣
線上精準估價,比價最容易,給你最便宜的價格,消費不
抓漏專業中古屋改造工程,新成屋,預售屋室內裝潢設計
搭配家具,家飾布置,整體規劃

首頁  •  j2h 論壇 • 程式設計討論     • 

group by、order by 子句

房東:小優
發表時間:2007-03-07


可以使用where子句來限定查詢的條件,除了 = 運算之外,還有 >、>=、<、<=、!= 或 <>等比較運算,例如:

Session session = sessionFactory.openSession();
Query query = session.createQuery("from User user where user.name='caterpillar'");

List names = query.list();
Iterator iterator = names.iterator();
while(iterator.hasNext()) {
User user = (User) iterator.next();
System.out.println(user.getAge() + "\t" + user.getName());
}


也可以在where子句上進行運算式,例如:

Query query = session.createQuery("from User user where (user.age / 10 = 3)");


也可以在where子句上使用and、or,例如:

Query query = session.createQuery("from User user where (user.age > 20) and (user.name = 'caterpillar')");


is not nullL與is null則可以測試欄位值是否為空值,例如:

Query query = session.createQuery("from User user where user.name is not null");


between可以測試欄位值是否在指定的範圍之內,例如:

Query query = session.createQuery("from User user where user.age between 20 and 30");


可以使用in或not in來測試欄位值是否在您指定的集合中,例如:

Query query = session.createQuery("from User user where user.name in('caterpillar', 'momor')");


like或not like可以讓您進行模糊條件搜尋,例如想搜尋名稱中含有cater開頭的資料:

Query query = session.createQuery("from User user where user.name like 'cater%'");


可以對查詢結果使用order by進行排序:

Query query = session.createQuery("from User user order by user.age");


可使用desc反排序:

Query query = session.createQuery("from User user order by user.age desc");


可同時指定兩個以上的排序方式,例如先按照"age"反序排列,如果"age"相同,則按照"name"順序排列:

Query query = session.createQuery("from User user order by user.age desc, user.name");


可以配合GROUP BY子句,自動將指定的欄位依相同的內容群組,例如依欄位"sex"分組並作平均:

Query query = session.createQuery("select user.sex, avg(user.age) from User user group by user.sex");


一個執行的結果如下:
+-------------------------------+
| sex | avg(age) |
+-------------------------------+
| male | 30 |
+-------------------------------+
| female | 25 |
+-------------------------------+

還可以結合having子句,例如只將平均大於20的資料分組顯示出來:

Query query = session.createQuery("select user.sex, avg(user.age) from User user group by user.sex having avg(user.age) > 20");



  • 贊助網站       

    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!
    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務



  •  共 0 人回應

    姓名:
    佈告內容:
    其他選項: