SQL中Having与Where的区别及注意
<p><span><strong>区别介绍:</strong></span></p>
<p>
where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。</p>
<p>
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。</p>
<p>
<span><strong>注意:</strong></span></p>
<p>
1、HAVING子句必须位于GROUP BY之后ORDER BY之前。</p>
<p>
2、WHERE语句在GROUP BY语句之前;SQL会在分组之前计算WHERE语句。 </p>
<p>
3、HAVING语句在GROUP BY语句之后;SQL会在分组之后计算HAVING语句。</p>
<p>
<span><strong>示例 :</strong></span></p>
<div class="jb51code">
<div>
<div class="syntaxhighlightersql" id="highlighter_267511">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql keyword">select</code> <code class="sql plain">类别, </code><code class="sql color2">sum</code><code class="sql plain">(数量) </code><code class="sql keyword">as</code> <code class="sql plain">数量之和 </code><code class="sql keyword">from</code> <code class="sql plain">A </code><code class="sql keyword">group</code> <code class="sql keyword">by</code> <code class="sql plain">类别 </code><code class="sql keyword">having</code> <code class="sql color2">sum</code><code class="sql plain">(数量) > 18</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
示例:Having和Where的联合使用方法</p>
<div class="jb51code">
<div>
<div class="syntaxhighlightersql" id="highlighter_255540">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql keyword">select</code> <code class="sql plain">类别, </code><code class="sql color2">SUM</code><code class="sql plain">(数量)</code><code class="sql keyword">from</code> <code class="sql plain">A </code><code class="sql keyword">where</code> <code class="sql plain">数量 > 8 </code><code class="sql keyword">group</code> <code class="sql keyword">by</code> <code class="sql plain">类别 </code><code class="sql keyword">having</code> <code class="sql color2">SUM</code><code class="sql plain">(数量) > 10</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<span><strong>总结</strong></span></p>
<p>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。</p>
頁:
[1]