﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-calmJava</title><link>http://www.blogjava.net/calmJava/</link><description>StillWaterRunsDeep</description><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 18:55:01 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 18:55:01 GMT</pubDate><ttl>60</ttl><item><title>JPQL语法总结</title><link>http://www.blogjava.net/calmJava/archive/2011/04/01/347450.html</link><dc:creator>calmJava</dc:creator><author>calmJava</author><pubDate>Fri, 01 Apr 2011 03:06:00 GMT</pubDate><guid>http://www.blogjava.net/calmJava/archive/2011/04/01/347450.html</guid><wfw:comment>http://www.blogjava.net/calmJava/comments/347450.html</wfw:comment><comments>http://www.blogjava.net/calmJava/archive/2011/04/01/347450.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/calmJava/comments/commentRss/347450.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/calmJava/services/trackbacks/347450.html</trackback:ping><description><![CDATA[<span style="width: 740px" id="articlecontent" onmouseup="NewHighlight(event)" class="wenzhang_con"><span style="font-weight: bold"><font size="3">JPQL语法总结<br />
<br />
</font></span>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-size: small"><font size="2"><span style="font-family: Calibri">JPQL</span><span style="font-family: 宋体">主要用于</span><span style="font-family: Calibri">JPA</span><span style="font-family: 宋体">查询数据，和</span><span style="font-family: Calibri">SQL</span><span style="font-family: 宋体">语句的语法大同小异；</span></font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体"><span style="font-size: small"><font size="2">最基本的查询：</font></span></span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT p</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">FROM Player p</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-size: small"><font size="2"><span style="font-family: 宋体">查询出所有的</span><span style="font-family: Calibri">player,</span><span style="font-family: 宋体">包括其子类，也可以写成这样</span></font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: Calibri; font-size: small"><font size="2">From Player as p</font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体"><span style="font-size: small"><font size="2">去除重复的元素</font></span></span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT DISTINCT</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">&nbsp;p</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">FROM Player p</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="color: black; font-size: 12pt">WHERE p.position = ?1</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; color: black; font-size: 12pt">关键字</span><span style="font-size: small"><font size="2">DISTINCT<span style="font-family: 宋体">去除了重复的元素，并且接受参数设置条件过滤</span></font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-size: small"><font size="2"><span style="font-family: 宋体">结合查询关联</span></font></span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT DISTINCT p</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="color: black; font-size: 12pt">FROM Player p, IN(p.teams) t</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; color: black; font-size: 12pt">查询所有有</span><span style="color: black; font-size: 12pt">team</span><span style="font-family: 宋体; color: black; font-size: 12pt">的</span><span style="font-family: 'courier new'; color: black; font-size: 12pt">player</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; color: black; font-size: 12pt">也可以写成如下：</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT DISTINCT p</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="color: black; font-size: 12pt">FROM Player p JOIN p.teams t</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; color: black; font-size: 12pt">或者：</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT DISTINCT p</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">FROM Player p</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="color: black; font-size: 12pt">WHERE p.team IS NOT EMPTY</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; color: black; font-size: 12pt">关联关系的查询过滤</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT t</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">&nbsp;FROM Team t JOIN t.league l</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="color: black; font-size: 12pt">&nbsp;WHERE l.sport = &#8217;soccer&#8217; OR l.sport =&#8217;football&#8217;</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; color: black; font-size: 12pt">查询所有</span><span style="color: black; font-size: 12pt">league sports</span><span style="font-family: 宋体; color: black; font-size: 12pt">属性的</span><span style="font-family: 'courier new'; color: black; font-size: 12pt">team</span><span style="font-family: 宋体; color: black; font-size: 12pt">对象</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT DISTINCT p</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">FROM Player p, IN (p.teams) t</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="color: black; font-size: 12pt">WHERE t.league.sport = :sport</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; color: black; font-size: 12pt">其他的查询表达式</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="color: black; font-size: 12pt">LIKE</span><span style="font-family: 宋体; color: black; font-size: 12pt">：</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT p</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">&nbsp;FROM Player p</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="color: black; font-size: 12pt">&nbsp;WHERE p.name LIKE &#8217;Mich%&#8217;</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 'courier new'; font-size: 12pt">IS NULL</span><span style="font-family: 宋体; font-size: 12pt">：</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT t</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">&nbsp;FROM Team t</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">&nbsp;WHERE t.league IS NULL</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 'courier new'; font-size: 12pt">IS EMPTY</span><span style="font-family: 宋体; font-size: 12pt">：</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT p</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">FROM Player p</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="color: black; font-size: 12pt">WHERE p.teams IS EMPTY</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; color: black; font-size: 12pt">主要用于判断关系实体一对多集合</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 'courier new'; font-size: 12pt">BETWEEN</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT DISTINCT p</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">FROM Player p</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="color: black; font-size: 12pt">WHERE p.salary BETWEEN :lowerSalary AND :higherSalary</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; color: black; font-size: 12pt">等价于：</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 'courier new'; color: black"><span style="font-size: small"><font size="2">p.salary &gt;= :lowerSalary AND p.salary &lt;= :higherSalary</font></span></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-size: small"><font size="2"><span style="font-family: 宋体; color: black">在判断日期范围的时候尤其有用；</span></font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-size: small"><font size="2"><span style="font-family: 宋体; color: black">复合条件：</span></font></span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT DISTINCT p1</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">FROM Player p1, Player p2</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">WHERE p1.salary &gt; p2.salary AND p2.name = :name</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体"><span style="font-size: small"><font size="2">查找薪水比指定姓名的员工更高的员工</font></span></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-size: small"><font size="2"><span style="font-family: Calibri">IN</span><span style="font-family: 宋体">：</span></font></span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">o.country IN (&#8217;UK&#8217;, &#8217;US&#8217;, &#8217;France&#8217;)</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-size: small"><font size="2"><span style="font-family: 宋体">同时你也可以在</span><span style="font-family: Calibri">In</span><span style="font-family: 宋体">语句中设置参数：</span></font></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 'courier new'; color: black"><span style="font-size: small"><font size="2">o.country IN (&#8217;UK&#8217;, &#8217;US&#8217;, &#8217;France&#8217;, :country)</font></span></span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-size: small"><font size="2"><span style="font-family: 宋体; color: black">子查询：</span></font></span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT c</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">FROM Customer c</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="color: black; font-size: 12pt">WHERE (SELECT COUNT(o) FROM c.orders o) &gt; 10</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="color: black; font-size: 12pt">EXISTS</span><span style="font-family: 宋体; color: black; font-size: 12pt">子查询：</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT DISTINCT emp</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">FROM Employee emp</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">WHERE EXISTS (</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">&nbsp;&nbsp;&nbsp; SELECT spouseEmp</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">&nbsp;&nbsp;&nbsp; FROM Employee spouseEmp</span></p>
<p style="text-indent: 23.25pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="color: black; font-size: 12pt">WHERE spouseEmp = emp.spouse)</span></p>
<p style="text-indent: 23.25pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="color: black; font-size: 12pt">ALL</span><span style="font-family: 宋体; color: black; font-size: 12pt">和</span><span style="font-family: 'courier new'; color: black; font-size: 12pt">ANY</span><span style="font-family: 宋体; color: black; font-size: 12pt">配合</span><span style="color: black; font-size: 12pt">=&lt;&gt;=&gt;</span><span style="font-family: 宋体; color: black; font-size: 12pt">使用</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT emp</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">FROM Employee emp</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">WHERE emp.salary &gt; ALL (</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">&nbsp;&nbsp;&nbsp; SELECT m.salary</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">&nbsp;&nbsp;&nbsp; FROM Manager m</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">&nbsp;&nbsp;&nbsp; WHERE m.department = emp.department)</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体"><span style="font-size: small"><font size="2">其他函数：</font></span></span></p>
<table style="border-collapse: collapse" class="MsoNormalTable" border="1" cellspacing="0" cellpadding="0">
    <tbody>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">CONCAT(String, String)</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">String</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">LENGTH(String)</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">int</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">LOCATE(String, String [, start])</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">int</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SUBSTRING(String, start, length)</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">String</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">TRIM([[LEADING|TRAILING|BOTH] char) FROM] (String)</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">String</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">LOWER(String)</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">String</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">UPPER(String)</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">String</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体"><span style="font-size: small"><font size="2">算法函数：</font></span></span></p>
<table style="border-collapse: collapse" class="MsoNormalTable" border="1" cellspacing="0" cellpadding="0">
    <tbody>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><strong><span style="font-family: 宋体; color: black; font-size: 12pt">Function Syntax</span></strong></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><strong><span style="font-family: 宋体; color: black; font-size: 12pt">Return Type</span></strong></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">ABS(number)</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">int</span><span style="font-family: 宋体; color: black; font-size: 12pt">, </span><span style="color: black; font-size: 12pt">float</span><span style="font-family: 宋体; color: black; font-size: 12pt">, or </span><span style="color: black; font-size: 12pt">double</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">MOD(int, int)</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">int</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SQRT(double)</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">double</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SIZE(Collection)</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">int</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体"><span style="font-size: small"><font size="2">返回参数：</font></span></span></p>
<p style="text-indent: -18pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph"><span style="font-family: Calibri; font-size: small"><font size="2">1）</font>&nbsp;</span><span style="font-family: 宋体"><span style="font-size: small"><font size="2">实体对象</font></span></span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT t</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">FROM Player p, IN (p.teams) t</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-size: small"><font size="2"><span style="font-family: Calibri">2) Objecth</span><span style="font-family: 宋体">或者</span><span style="font-family: Calibri">Object[]</span></font></span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT c.name, c.country.name</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">&nbsp;FROM customer c</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="color: black; font-size: 12pt">&nbsp;WHERE c.lastname = &#8217;Coss&#8217; AND c.firstname = &#8217;Roxane&#8217;</span></p>
<p style="margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><span style="font-family: 宋体; color: black; font-size: 12pt">返回一个</span><span style="color: black; font-size: 12pt">Object[] list,[0]</span><span style="font-family: 宋体; color: black; font-size: 12pt">为</span><span style="font-family: 'courier new'; color: black; font-size: 12pt">name</span><span style="font-family: 宋体; color: black; font-size: 12pt">，</span><span style="color: black; font-size: 12pt">[1]</span><span style="font-family: 宋体; color: black; font-size: 12pt">为</span><span style="font-family: 'courier new'; color: black; font-size: 12pt">country name</span></p>
<p style="margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><span style="color: black; font-size: 12pt">Select</span><span style="font-family: 宋体; color: black; font-size: 12pt">语句的聚合函数：</span></p>
<table style="border-collapse: collapse" class="MsoNormalTable" border="1" cellspacing="0" cellpadding="0">
    <tbody>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">AVG</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">Double</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: black; font-size: 12pt">Returns the mean average of the fields.</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">COUNT</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">Long</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: black; font-size: 12pt">Returns the total number of results.</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">MAX</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: black; font-size: 12pt">the type of the field</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: black; font-size: 12pt">Returns the highest value in the result set.</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">MIN</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: black; font-size: 12pt">the type of the field</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: black; font-size: 12pt">Returns the lowest value in the result set.</span></p>
            </td>
        </tr>
        <tr>
            <td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SUM</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">Long</span><span style="font-family: 宋体; color: black; font-size: 12pt"> (for integral fields)</span><span style="font-family: 'courier new'; color: black; font-size: 12pt">Double</span><span style="font-family: 宋体; color: black; font-size: 12pt"> (for floating point fields)</span><span style="font-family: 'courier new'; color: black; font-size: 12pt">BigInteger</span><span style="font-family: 宋体; color: black; font-size: 12pt"> (for </span><span style="font-family: 'courier new'; color: black; font-size: 12pt">BigInteger</span><span style="font-family: 宋体; color: black; font-size: 12pt"> fields)</span><span style="font-family: 'courier new'; color: black; font-size: 12pt">BigDecimal</span><span style="font-family: 宋体; color: black; font-size: 12pt"> (for </span><span style="font-family: 'courier new'; color: black; font-size: 12pt">BigDecimal</span><span style="font-family: 宋体; color: black; font-size: 12pt"> fields)</span></p>
            </td>
            <td style="border-bottom: windowtext 1pt solid; border-left: #ece9d8; padding-bottom: 4.5pt; background-color: transparent; padding-left: 3pt; padding-right: 3pt; border-top: #ece9d8; border-right: windowtext 1pt solid; padding-top: 3pt" valign="top">
            <p style="text-align: left; margin: 4.5pt 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: black; font-size: 12pt">Returns the sum of all the values in the result set.</span></p>
            </td>
        </tr>
    </tbody>
</table>
<p style="margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><span style="font-family: 宋体"><span style="font-size: small"><font size="2">如：</font></span></span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT COUNT(l.price)</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">FROM Order o JOIN o.lineItems l JOIN o.customer c</span></p>
<p style="margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><span style="color: black; font-size: 12pt">WHERE c.lastname = &#8217;Incandenza&#8217; AND c.firstname = &#8217;Hal&#8217;</span></p>
<p style="margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><span style="font-family: 宋体; color: black; font-size: 12pt">构造语句：</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT NEW com.xyz.CustomerDetail(c.name, c.country.name)</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">&nbsp;FROM customer c</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">WHERE c.lastname = &#8217;Coss&#8217; AND c.firstname = &#8217;Roxane&#8217;</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: black; font-size: 12pt">能够利用查出的数据直接构造出对象</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">Order By</span><span style="font-family: 宋体; color: black; font-size: 12pt">：</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT p.product_name</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">FROM Order o, IN(o.lineItems) l JOIN o.customer c</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">WHERE c.lastname = &#8217;Faehmel&#8217; AND c.firstname = &#8217;Robert&#8217;</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">ORDER BY o.quantity</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 'courier new'; font-size: 12pt">GROUP BY</span><span style="font-family: 宋体; font-size: 12pt">：</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT c.country, COUNT(c)</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="color: black; font-size: 12pt">&nbsp;FROM Customer c GROUP BY c.country</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="color: black; font-size: 12pt">Having</span><span style="font-family: 宋体; color: black; font-size: 12pt">：</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">SELECT c.status, AVG(o.totalPrice)</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">&nbsp;FROM Order o JOIN o.customer c</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'courier new'; color: black; font-size: 12pt">GROUP BY c.status HAVING c.status IN (1, 2, 3)</span></p>
</span>
<img src ="http://www.blogjava.net/calmJava/aggbug/347450.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/calmJava/" target="_blank">calmJava</a> 2011-04-01 11:06 <a href="http://www.blogjava.net/calmJava/archive/2011/04/01/347450.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>