北京好兄弟一辈子酒水商行 發表於 2023-9-3 00:00:00

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">(数量) &gt; 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">数量 &gt; 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">(数量) &gt; 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]
查看完整版本: SQL中Having与Where的区别及注意