forked from docs/doc-exports
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Co-authored-by: Lu, Huayi <luhuayi@huawei.com> Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
656 lines
163 KiB
HTML
656 lines
163 KiB
HTML
<a name="EN-US_TOPIC_0000001188270504"></a><a name="EN-US_TOPIC_0000001188270504"></a>
|
||
|
||
<h1 class="topictitle1">SELECT</h1>
|
||
<div id="body8662426"><div class="section" id="EN-US_TOPIC_0000001188270504__s4aaa3f44fd4c4c26ac169cbeadfa5b3f"><h4 class="sectiontitle">Function</h4><p id="EN-US_TOPIC_0000001188270504__af684fc07efa44b368aeb556f54395f91"><strong id="EN-US_TOPIC_0000001188270504__b6914359175">SELECT</strong> retrieves data from a table or view.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a90e5d78209b04b0b8820d3dcd219c3d6">Serving as an overlaid filter for a database table, <strong id="EN-US_TOPIC_0000001188270504__b6051071311427">SELECT</strong> using SQL keywords retrieves required data from data tables.</p>
|
||
</div>
|
||
<div class="section" id="EN-US_TOPIC_0000001188270504__s78bf00a719ef44199ba2e0f9c0248a54"><h4 class="sectiontitle">Precautions</h4><ul id="EN-US_TOPIC_0000001188270504__u9896b696863844bab556b6d33afd9fc7"><li id="EN-US_TOPIC_0000001188270504__l086d85b7adfc48a89972baea179bac49">Using <strong id="EN-US_TOPIC_0000001188270504__b842352706155646">SELECT</strong> can join HDFS and ordinary tables, but cannot join ordinary and GDS foreign tables. That is, a <strong id="EN-US_TOPIC_0000001188270504__b96613537615573">SELECT</strong> statement cannot contain both ordinary and GDS foreign tables.</li><li id="EN-US_TOPIC_0000001188270504__lfac5e780b1bb4e9a9c0718b42ea38cf6">The user must have the SELECT permission on every column used in the <strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b84235270693252">SELECT</strong> command.</li></ul>
|
||
</div>
|
||
<ul id="EN-US_TOPIC_0000001188270504__u0a63d0085c844d08a5f30b834204f72b"><li id="EN-US_TOPIC_0000001188270504__lb54cd2d59f974eefa8e4f16eaefbf89e">UPDATE permission is required when using <strong id="EN-US_TOPIC_0000001188270504__b84235270693259">FOR UPDATE</strong> or <strong id="EN-US_TOPIC_0000001188270504__b8423527069334">FOR SHARE</strong>.</li></ul>
|
||
<div class="section" id="EN-US_TOPIC_0000001188270504__s50a8a035635e48e98b4980d2e4e4bf75"><h4 class="sectiontitle">Syntax</h4><ul id="EN-US_TOPIC_0000001188270504__u15e87fe53aff484c81dc1c7f48835f40"><li id="EN-US_TOPIC_0000001188270504__l2387cad9785c496f8cc9b2d0f96362d8">Querying data</li></ul>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__s6034843f228243b89db2138546baece4"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||
<span class="normal"> 2</span>
|
||
<span class="normal"> 3</span>
|
||
<span class="normal"> 4</span>
|
||
<span class="normal"> 5</span>
|
||
<span class="normal"> 6</span>
|
||
<span class="normal"> 7</span>
|
||
<span class="normal"> 8</span>
|
||
<span class="normal"> 9</span>
|
||
<span class="normal">10</span>
|
||
<span class="normal">11</span>
|
||
<span class="normal">12</span>
|
||
<span class="normal">13</span></pre></div></td><td class="code"><div><pre><span></span><span class="p">[</span><span class="w"> </span><span class="k">WITH</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">RECURSIVE</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="n">with_query</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="k">SELECT</span><span class="w"> </span><span class="p">[</span><span class="cm">/*+ plan_hint */</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">ALL</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">DISTINCT</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">expression</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="err">{</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="n">expression</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="n">output_name</span><span class="w"> </span><span class="p">]</span><span class="err">}</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="err">}</span>
|
||
<span class="p">[</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">from_item</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="p">[</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">condition</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="p">[</span><span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">grouping_element</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="p">[</span><span class="w"> </span><span class="k">HAVING</span><span class="w"> </span><span class="n">condition</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="p">[</span><span class="w"> </span><span class="n">WINDOW</span><span class="w"> </span><span class="err">{</span><span class="n">window_name</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">window_definition</span><span class="w"> </span><span class="p">)</span><span class="err">}</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="p">[</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">UNION</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">INTERSECT</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">EXCEPT</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">MINUS</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">ALL</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">DISTINCT</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="p">[</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="err">{</span><span class="n">expression</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">ASC</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">DESC</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">USING</span><span class="w"> </span><span class="k">operator</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">nlssort_expression_clause</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">NULLS</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">FIRST</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">LAST</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">]</span><span class="err">}</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="p">[</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">LIMIT</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">count</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">ALL</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">OFFSET</span><span class="w"> </span><span class="k">start</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">ROW</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">ROWS</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">LIMIT</span><span class="w"> </span><span class="k">start</span><span class="p">,</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">count</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">ALL</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="p">[</span><span class="w"> </span><span class="k">FETCH</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">FIRST</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">NEXT</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">count</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">ROW</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">ROWS</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="k">ONLY</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="p">[</span><span class="w"> </span><span class="err">{</span><span class="k">FOR</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">UPDATE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">SHARE</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">OF</span><span class="w"> </span><span class="k">table_name</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">NOWAIT</span><span class="w"> </span><span class="p">]</span><span class="err">}</span><span class="w"> </span><span class="p">[...]</span><span class="w"> </span><span class="p">];</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<div class="note" id="EN-US_TOPIC_0000001188270504__nd82a9d69dbe44615b5d58f2317b24ee0"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001188270504__a0ddb0d189f204032ba292175a2d08fc2">In condition and expression, you can use the aliases of expressions in <strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b842352706191138">targetlist</strong> in compliance with the following rules:</p>
|
||
<ul id="EN-US_TOPIC_0000001188270504__u91719365c9444c8ab09972f5eff8b222"><li id="EN-US_TOPIC_0000001188270504__l94e348a1eeec4f00a67389fa2d0f468d">Reference only in the same level.</li><li id="EN-US_TOPIC_0000001188270504__lb63304032b954772a9da572edf6fd570">Only reference aliases in <strong id="EN-US_TOPIC_0000001188270504__b12557183883618">targetlist</strong>.</li><li id="EN-US_TOPIC_0000001188270504__l37921722f4804f569ca75a02403ea8a3">Reference a prior expression in a subsequent expression.</li><li id="EN-US_TOPIC_0000001188270504__l97f6e5f331fe4652a46ec4cc882bc837">The <strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b84235270693659">volatile</strong> function cannot be used.</li><li id="EN-US_TOPIC_0000001188270504__l1d235ea487ba4a2596381fa52822a878">The <strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b84235270693656">Window</strong> function cannot be used.</li><li id="EN-US_TOPIC_0000001188270504__l4b58bf5a415c4d90993a40cbc151a739">Do not reference an alias in the <strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b84235270693630">join on</strong> condition.</li><li id="EN-US_TOPIC_0000001188270504__l4c738fccc53d46bfbd3d66611e1f487f">An error is reported if <strong id="EN-US_TOPIC_0000001188270504__b152921527193610">targetlist</strong> contains multiple referenced aliases.</li></ul>
|
||
</div></div>
|
||
<ul id="EN-US_TOPIC_0000001188270504__ubcd67d3dc40240929e019b123aede886"><li id="EN-US_TOPIC_0000001188270504__leb2e5137edfd4cd88421e9d9fa7ae05c">The subquery <strong id="EN-US_TOPIC_0000001188270504__b84235270611256">with_query</strong> is as follows:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__s12ac0a9294924ffd8c44b61cf39b7beb"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="n">with_query_name</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="k">column_name</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="n">MATERIALIZED</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="err">{</span><span class="k">select</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">values</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">insert</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">update</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">delete</span><span class="err">}</span><span class="w"> </span><span class="p">)</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l01fa039af3a143708a42be93aa614693">The specified query source <strong id="EN-US_TOPIC_0000001188270504__b842352706111123">from_item</strong> is as follows:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__s0e4b14cc77ba4b8d80b7f94e4c356ed7"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||
<span class="normal">2</span>
|
||
<span class="normal">3</span>
|
||
<span class="normal">4</span>
|
||
<span class="normal">5</span>
|
||
<span class="normal">6</span></pre></div></td><td class="code"><div><pre><span></span><span class="err">{</span><span class="p">[</span><span class="w"> </span><span class="k">ONLY</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="k">table_name</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">partition_clause</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="k">alias</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">column_alias</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="o">|</span><span class="p">(</span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="k">alias</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">column_alias</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="o">|</span><span class="n">with_query_name</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="k">alias</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">column_alias</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="o">|</span><span class="n">function_name</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">argument</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="k">alias</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">column_alias</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">column_definition</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="o">|</span><span class="n">function_name</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">argument</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">column_definition</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span>
|
||
<span class="o">|</span><span class="n">from_item</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">NATURAL</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="n">join_type</span><span class="w"> </span><span class="n">from_item</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">join_condition</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">USING</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">join_column</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">]</span><span class="err">}</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l178890201443489ca54622f7ce341d11">The <strong id="EN-US_TOPIC_0000001188270504__b842352706153938">group</strong> clause is as follows:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__s900ec6cff9c6489b81bdbf86942c23ba"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||
<span class="normal">2</span>
|
||
<span class="normal">3</span>
|
||
<span class="normal">4</span>
|
||
<span class="normal">5</span>
|
||
<span class="normal">6</span></pre></div></td><td class="code"><div><pre><span></span><span class="p">(</span><span class="w"> </span><span class="p">)</span>
|
||
<span class="o">|</span><span class="w"> </span><span class="n">expression</span>
|
||
<span class="o">|</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">expression</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span>
|
||
<span class="o">|</span><span class="w"> </span><span class="k">ROLLUP</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="n">expression</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">expression</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span>
|
||
<span class="o">|</span><span class="w"> </span><span class="k">CUBE</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="n">expression</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">expression</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span>
|
||
<span class="o">|</span><span class="w"> </span><span class="k">GROUPING</span><span class="w"> </span><span class="k">SETS</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">grouping_element</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l6896a73270364c66b1535608fd1f4cf5">The specified partition <strong id="EN-US_TOPIC_0000001188270504__b842352706111313">partition_clause</strong> is as follows:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__se66d37b016e14496a9a41bb0b44cd72a"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="n">PARTITION</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">partition_name</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="k">FOR</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">partition_value</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="err">}</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<div class="note" id="EN-US_TOPIC_0000001188270504__ne4fd1d5ab5cc4b8d97c1f9b04922541e"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001188270504__ac45c6d0adfdc47079e3f2bdbbe61d992">Partitions can be specified only for ordinary tables. </p>
|
||
</div></div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l9372b318c22d49d09c683d639d2b4b01">The sorting order <strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0085033010_en-us_topic_0058966196_b842352706111915">nlssort_expression_clause</strong> is as follows:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__sfe7df5e182a5404597d76e0cdbce78b1"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="n">NLSSORT</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="k">column_name</span><span class="p">,</span><span class="w"> </span><span class="s1">' NLS_SORT = { SCHINESE_PINYIN_M | generic_m_ci } '</span><span class="w"> </span><span class="p">)</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l88acada40d73481990221d814fee1bd4">Simplified query syntax, equivalent to <strong id="EN-US_TOPIC_0000001188270504__b842352706154057">select * from table_name</strong>.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__sa392fa2a442247d9ac485a7781dd4730"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">TABLE</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">ONLY</span><span class="w"> </span><span class="err">{</span><span class="p">(</span><span class="k">table_name</span><span class="p">)</span><span class="o">|</span><span class="w"> </span><span class="k">table_name</span><span class="err">}</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">table_name</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">]</span><span class="err">}</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li></ul>
|
||
</div>
|
||
<div class="section" id="EN-US_TOPIC_0000001188270504__s3d562432879c4244bcdbfdf9f30bcc5e"><a name="EN-US_TOPIC_0000001188270504__s3d562432879c4244bcdbfdf9f30bcc5e"></a><a name="s3d562432879c4244bcdbfdf9f30bcc5e"></a><h4 class="sectiontitle">Parameter Description</h4><ul id="EN-US_TOPIC_0000001188270504__u46cc0e41390341239d62308fe9ab6584"><li id="EN-US_TOPIC_0000001188270504__l960132ce67644a2b88bd231680bc0159"><strong id="EN-US_TOPIC_0000001188270504__a98a693ba128149ca8ddb334f9150b8e5">WITH [ RECURSIVE ] with_query [, ...]</strong><p id="EN-US_TOPIC_0000001188270504__af175239a7ebf41dbba346040fa5f81e9">The <strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b84235270693837">WITH</strong> clause allows you to specify one or more subqueries that can be referenced by name in the primary query, equal to temporary table.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__ae4550db3cb5f436d9f99202e871704b4">If <strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b84235270693847">RECURSIVE</strong> is specified, it allows a <strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b84235270693853">SELECT</strong> subquery to reference itself by name.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a0091192c23ce433486347221925f6191">The syntax of <strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b842352706112445">with_query</strong> is: <strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b84235270611255">with_query_name [ ( column_name [, ...] ) ] AS [ [ NOT ] MATERIALIZED ] ( {select | values | insert | update | delete} )</strong></p>
|
||
<ul id="EN-US_TOPIC_0000001188270504__u60b4d08f2c304d489b6c4e1e182b1124"><li id="EN-US_TOPIC_0000001188270504__lb8ad5bb4274843aaab5d411ceb1e520d"><strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b842352706112635">with_query_name</strong> specifies the name of the result set generated by a subquery. Such names can be used to access the result sets of subqueries in a query.</li><li id="EN-US_TOPIC_0000001188270504__li1365918581633">By default, the <strong id="EN-US_TOPIC_0000001188270504__b136546663617">with_query</strong> that is referenced multiple times by the primary query is executed only once. Its result set is materialized so that the primary query can query its result set multiple times. The <strong id="EN-US_TOPIC_0000001188270504__b15816156153615">with_query</strong> referenced once by the primary query will not be executed independently. Instead, its subquery takes the place where the primary query can directly reference it and is executed with the primary query. If <strong id="EN-US_TOPIC_0000001188270504__b35177214501">[NOT] MATERIALIZED</strong> is specified, the default action is changed.<ul id="EN-US_TOPIC_0000001188270504__ul060517619516"><li id="EN-US_TOPIC_0000001188270504__li6132510510">If <strong id="EN-US_TOPIC_0000001188270504__b1475065125120">MATERIALIZED </strong>is specified, the subquery is executed once and its result set is materialized.</li><li id="EN-US_TOPIC_0000001188270504__li19394257715">If <strong id="EN-US_TOPIC_0000001188270504__b16407112965111">NOT MATERIALIZED</strong> is specified, its subquery takes the place where the primary query can directly reference it. <strong id="EN-US_TOPIC_0000001188270504__b9173184310556">NOT MATERIALIZED</strong> is ignored in the following cases:<ul id="EN-US_TOPIC_0000001188270504__ul1187025316819"><li id="EN-US_TOPIC_0000001188270504__li739110531816">The subquery contains volatile functions.</li><li id="EN-US_TOPIC_0000001188270504__li1158512718106">The subquery is a <strong id="EN-US_TOPIC_0000001188270504__b12151513183013">SELECT</strong> or <strong id="EN-US_TOPIC_0000001188270504__b136962016302">VALUES</strong> statement containing <strong id="EN-US_TOPIC_0000001188270504__b13891427155720">FOR UPDATE</strong> or <strong id="EN-US_TOPIC_0000001188270504__b6366736165716">FOR SHARE</strong>.</li><li id="EN-US_TOPIC_0000001188270504__li12528781118">The subquery is an <strong id="EN-US_TOPIC_0000001188270504__b8888164516571">INSERT</strong>, <strong id="EN-US_TOPIC_0000001188270504__b19416449145714">UPDATE</strong>, or <strong id="EN-US_TOPIC_0000001188270504__b1617135115713">DELETE </strong>statement.</li><li id="EN-US_TOPIC_0000001188270504__li653014450114"><strong id="EN-US_TOPIC_0000001188270504__b37456194408">RECURSIVE</strong> is specified for <strong id="EN-US_TOPIC_0000001188270504__b1430320593575">with_query</strong>.</li><li id="EN-US_TOPIC_0000001188270504__li159285136255">If <strong id="EN-US_TOPIC_0000001188270504__b87265368417">with_query2</strong> is referenced more than once and it references <strong id="EN-US_TOPIC_0000001188270504__b137914291946">with_query1</strong>, which referenced itself in the outer layer, <strong id="EN-US_TOPIC_0000001188270504__b113877610167">with_query2</strong> cannot take the place where it can be referenced.<div class="p" id="EN-US_TOPIC_0000001188270504__p69798146259">For example, in the following example, <strong id="EN-US_TOPIC_0000001188270504__b11771193719617">tmp2</strong> is referenced twice. Because <strong id="EN-US_TOPIC_0000001188270504__b19590642084">tmp2</strong> references <strong id="EN-US_TOPIC_0000001188270504__b14531159785">tmp1</strong> which referenced itself in the outer layer, <strong id="EN-US_TOPIC_0000001188270504__b6883919380">tmp2</strong> will be materialized even if <strong id="EN-US_TOPIC_0000001188270504__b941217391687">NOT MATERIALIZED</strong> is specified.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen15378812886"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||
<span class="normal">2</span>
|
||
<span class="normal">3</span>
|
||
<span class="normal">4</span>
|
||
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">with</span><span class="w"> </span><span class="k">recursive</span><span class="w"> </span><span class="n">tmp1</span><span class="p">(</span><span class="n">b</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="p">(</span><span class="k">values</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||
<span class="k">union</span><span class="w"> </span><span class="k">all</span>
|
||
<span class="p">(</span><span class="k">with</span><span class="w"> </span><span class="n">tmp2</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="n">materialized</span><span class="w"> </span><span class="p">(</span><span class="k">select</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">tmp1</span><span class="p">)</span>
|
||
<span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="n">tt1</span><span class="p">.</span><span class="n">b</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">tt2</span><span class="p">.</span><span class="n">b</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">tmp2</span><span class="w"> </span><span class="n">tt1</span><span class="p">,</span><span class="w"> </span><span class="n">tmp2</span><span class="w"> </span><span class="n">tt2</span><span class="p">))</span>
|
||
<span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">tmp1</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</div>
|
||
</li></ul>
|
||
</li></ul>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l6087544bba9f4355bc1e805255897bc3"><strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b842352706112838">column_name</strong> specifies a column name displayed in the subquery result set.</li><li id="EN-US_TOPIC_0000001188270504__lf6c8a2d666b04fb584d2c609cc9334aa">Each subquery can be a <strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b84235270693925">SELECT</strong>, <strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b84235270693928">VALUES</strong>, <strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b84235270693932">INSERT</strong>, <strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b84235270693936">UPDATE</strong> or <strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b84235270693940">DELETE</strong> statement.</li></ul>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__li3827664622714"><strong id="EN-US_TOPIC_0000001188270504__b16167321123016">plan_hint</strong> clause<p id="EN-US_TOPIC_0000001188270504__p4005798022743">Follows the <strong id="EN-US_TOPIC_0000001188270504__b65005602418">SELECT</strong> keyword in the /*+<<em id="EN-US_TOPIC_0000001188270504__i1122934813319">Plan hint</em>> */ format. It is used to optimize the plan of a <strong id="EN-US_TOPIC_0000001188270504__b1911012163259">SELECT</strong> statement block. For details, see section "Hint-based Tuning."</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l33a108a7689549c8b910e68210aa5314"><strong id="EN-US_TOPIC_0000001188270504__a704deac84be8427bb9f8cd3dbd0dbd00">ALL</strong><p id="EN-US_TOPIC_0000001188270504__a98c782963e71415ea900483f0f7c456e">Specifies that all rows meeting the requirements are returned. This is the default behavior, so you can omit this keyword.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l43ddfc3d9a0d4f9398fea88436b376ad"><strong id="EN-US_TOPIC_0000001188270504__ae08bf8ed7a1441ae9c46a40dabb09efa">DISTINCT [ ON ( expression [, ...] ) ]</strong><p id="EN-US_TOPIC_0000001188270504__a0bf97a5e5b5646ecb6e69997867c0ec9">Removes all duplicate rows from the <strong id="EN-US_TOPIC_0000001188270504__b23921772165312">SELECT</strong> result so one row is kept from each group of duplicates.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a02d339bc997f49b6993656fbaecea9d2"><strong id="EN-US_TOPIC_0000001188270504__b842352706101130">ON ( expression [, ...] )</strong> is only reserved for the first row among all the rows with the same result calculated using given expressions.</p>
|
||
<div class="notice" id="EN-US_TOPIC_0000001188270504__nafe9395671b3433e848938a222389f4e"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="EN-US_TOPIC_0000001188270504__acbc2550187744ed5b5eacb37125dd4e7"><strong id="EN-US_TOPIC_0000001188270504__b842352706113232">DISTINCT ON</strong> expression is explained with the same rule of <strong id="EN-US_TOPIC_0000001188270504__b842352706113321">ORDER BY</strong>. Unless you use <strong id="EN-US_TOPIC_0000001188270504__b871845464113341">ORDER BY</strong> to guarantee that the required row appears first, you cannot know what the first row is.</p>
|
||
</div></div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__lee69b1e6e28f40e8939038167a36e5ef"><strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0059777449_afc65ee9aed024d6e9cfc8e8b84422625">SELECT list</strong><p id="EN-US_TOPIC_0000001188270504__a60e7fa93af3e41bf9ce523eb67ad2523">Indicates columns to be queried. Some or all columns (using wildcard character *) can be queried.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a9fdfc50f867044f4a67c65cfc76ac92b">You may use the <strong id="EN-US_TOPIC_0000001188270504__b43211594165312">AS output_name</strong> clause to give an alias for an output column. The alias is used for the displaying of the output column.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a2c3877bd6b6c43f69a525166685de691">Column names may be either of:</p>
|
||
<ul id="EN-US_TOPIC_0000001188270504__uf97f4fe9f63a43ff949d2ffcd398838d"><li id="EN-US_TOPIC_0000001188270504__l6816e1203d2d486b95273184375b349d">Manually input column names which are spaced using commas (,).</li><li id="EN-US_TOPIC_0000001188270504__lab082d4acf1e403cb914b1ed6bf68466">Fields computed in the <strong id="EN-US_TOPIC_0000001188270504__b19775587165312">FROM</strong> clause.</li></ul>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l607b711a9931490793bf7b816997d3f1"><strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0059777449_aa5ddb2004bae487bb635582362b22e64">FROM</strong> clause<p id="EN-US_TOPIC_0000001188270504__afa732663df46477aac8655ce9e22ec24">Indicates one or more source tables for <strong id="EN-US_TOPIC_0000001188270504__b2156603165312">SELECT</strong>.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__ab9fecc1f1c7d43cf810ebe9f620f4ef5">The <strong id="EN-US_TOPIC_0000001188270504__b842352706113556">FROM</strong> clause can contain the following elements:</p>
|
||
<ul id="EN-US_TOPIC_0000001188270504__uf77a1e37a8414a41ac8c9f3a387d0af9"><li id="EN-US_TOPIC_0000001188270504__lba444aaf21f240709e20d2ce11de32bf">table_name<p id="EN-US_TOPIC_0000001188270504__ac51eeaa1edaf411f8d65b32a38e73a29"><a name="EN-US_TOPIC_0000001188270504__lba444aaf21f240709e20d2ce11de32bf"></a><a name="lba444aaf21f240709e20d2ce11de32bf"></a>Indicates the name (optionally schema-qualified) of an existing table or view, for example, <strong id="EN-US_TOPIC_0000001188270504__b1875126647">schema_name.table_name</strong>.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__la5bcc5d9b61443fcb3dde53a4ba4a543">alias<p id="EN-US_TOPIC_0000001188270504__a70aaae1b5b934732ab63820bb1fefd01"><a name="EN-US_TOPIC_0000001188270504__la5bcc5d9b61443fcb3dde53a4ba4a543"></a><a name="la5bcc5d9b61443fcb3dde53a4ba4a543"></a>Gives a temporary alias to a table to facilitate the quotation by other queries.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a6d30a40c96f54321b9f325186fe05e1e">An alias is used for brevity or to eliminate ambiguity for self-joins. When an alias is provided, it completely hides the actual name of the table or function.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__lb198c16bc73e4109af3cc5e8069cecd4">column_alias<p id="EN-US_TOPIC_0000001188270504__adf10b851efcb40529f5d11b826c3777e"><a name="EN-US_TOPIC_0000001188270504__lb198c16bc73e4109af3cc5e8069cecd4"></a><a name="lb198c16bc73e4109af3cc5e8069cecd4"></a>Specifies the column alias.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l301acc0a296b416b9f27766cdb1638d0">PARTITION<p id="EN-US_TOPIC_0000001188270504__a8f3d9a031c2a484f82b8ebf0bf1a717c"><a name="EN-US_TOPIC_0000001188270504__l301acc0a296b416b9f27766cdb1638d0"></a><a name="l301acc0a296b416b9f27766cdb1638d0"></a>Queries data in the specified partition in a partition table.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__lf3d2b4a346d94735bb8ae269b660f242">partition_name<p id="EN-US_TOPIC_0000001188270504__a13aafc9696b7422291a52fce0ee58433"><a name="EN-US_TOPIC_0000001188270504__lf3d2b4a346d94735bb8ae269b660f242"></a><a name="lf3d2b4a346d94735bb8ae269b660f242"></a>Specifies the name of a partition.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l8f59001109654416a92d8ea37046be7d">partition_value<p id="EN-US_TOPIC_0000001188270504__a8407a93db15240b28513f5a4a95dbdd6"><a name="EN-US_TOPIC_0000001188270504__l8f59001109654416a92d8ea37046be7d"></a><a name="l8f59001109654416a92d8ea37046be7d"></a>Specifies the value of the specified partition key. If there are many partition keys, use the <strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0058966196_b842352706113958">PARTITION FOR</strong> clause to specify the value of the only partition key you want to use.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l7b7ec6ef0dfa44069c5a4ae9820ee6e7">subquery<p id="EN-US_TOPIC_0000001188270504__aeb31c88136a048db9cd0d74318763ebb"><a name="EN-US_TOPIC_0000001188270504__l7b7ec6ef0dfa44069c5a4ae9820ee6e7"></a><a name="l7b7ec6ef0dfa44069c5a4ae9820ee6e7"></a>Performs a subquery in the <strong id="EN-US_TOPIC_0000001188270504__b42365222165312">FROM</strong> clause. A temporary table is created to save subquery results.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l5ff2c1fb7ef04b21a81a661e8b568b7c">with_query_name<p id="EN-US_TOPIC_0000001188270504__a4bd42450d9bc4346a477d5cff86ef126"><a name="EN-US_TOPIC_0000001188270504__l5ff2c1fb7ef04b21a81a661e8b568b7c"></a><a name="l5ff2c1fb7ef04b21a81a661e8b568b7c"></a><strong id="EN-US_TOPIC_0000001188270504__b38761261247">WITH</strong> clause can also be the source of <strong id="EN-US_TOPIC_0000001188270504__b687626344">FROM</strong> clause and can be referenced with the name queried by executing <strong id="EN-US_TOPIC_0000001188270504__b19876861041">WITH</strong>.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l92480dec8ab14deb857b66341f22168d">function_name<p id="EN-US_TOPIC_0000001188270504__a25d483f2b43040159348ac7488f98384"><a name="EN-US_TOPIC_0000001188270504__l92480dec8ab14deb857b66341f22168d"></a><a name="l92480dec8ab14deb857b66341f22168d"></a>Function name. Function calls can appear in the <strong id="EN-US_TOPIC_0000001188270504__b12876186242">FROM</strong> clause.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l28470074b0d84b089393ceac95e7ed06">join_type<p id="EN-US_TOPIC_0000001188270504__a648897cfe6b9423c929cf548e1f0e4b6"><a name="EN-US_TOPIC_0000001188270504__l28470074b0d84b089393ceac95e7ed06"></a><a name="l28470074b0d84b089393ceac95e7ed06"></a>There are five types below:</p>
|
||
<ul id="EN-US_TOPIC_0000001188270504__u1266e43f205e4ce689aab94a580be4fb"><li id="EN-US_TOPIC_0000001188270504__l02ee92ffd40c4fcb89d2841992057846">[ INNER ] JOIN<p id="EN-US_TOPIC_0000001188270504__a12faaea30857468b838f1647d3f6692d"><a name="EN-US_TOPIC_0000001188270504__l02ee92ffd40c4fcb89d2841992057846"></a><a name="l02ee92ffd40c4fcb89d2841992057846"></a>A <strong id="EN-US_TOPIC_0000001188270504__b23217608165312">JOIN</strong> clause combines two <strong id="EN-US_TOPIC_0000001188270504__b7631883165312">FROM</strong> items. Use parentheses if necessary to determine the order of nesting. In the absence of parentheses, <strong id="EN-US_TOPIC_0000001188270504__b19044080165312">JOIN</strong> nests left-to-right.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a61cb48409a0d4ad89dd7e79eeed38f8b">In any case, <strong id="EN-US_TOPIC_0000001188270504__b58618319165312">JOIN</strong> binds more tightly than the commas separating <strong id="EN-US_TOPIC_0000001188270504__b57802828165312">FROM</strong> items.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__la0b70be9f3434b2196ed7316975486b8">LEFT [ OUTER ] JOIN<p id="EN-US_TOPIC_0000001188270504__aab8ade6a5119403bb09b6ffd65c5bb2e"><a name="EN-US_TOPIC_0000001188270504__la0b70be9f3434b2196ed7316975486b8"></a><a name="la0b70be9f3434b2196ed7316975486b8"></a>Returns all rows in the qualified Cartesian product (all combined rows that pass its join condition), and pluses one copy of each row in the left-hand table for which there was no right-hand row that passed the join condition. This left-hand row is extended to the full width of the joined table by inserting <strong id="EN-US_TOPIC_0000001188270504__b16013208165312">NULL</strong> values for the right-hand columns. Note that only the <strong id="EN-US_TOPIC_0000001188270504__b63795582165312">JOIN</strong> clause's own condition is considered while deciding which rows have matches. Outer conditions are applied afterwards.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__lf35986b4c0944e8a81ed51f6810da62f">RIGHT [ OUTER ] JOIN<p id="EN-US_TOPIC_0000001188270504__ae4ab254ed60041b38488da211d606d8e"><a name="EN-US_TOPIC_0000001188270504__lf35986b4c0944e8a81ed51f6810da62f"></a><a name="lf35986b4c0944e8a81ed51f6810da62f"></a>Returns all the joined rows, plus one row for each unmatched right-hand row (extended with <strong id="EN-US_TOPIC_0000001188270504__b17877269410">NULL</strong> on the left).</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a7a747a7d675448288dc734ca2d6bc24d">This is just a notational convenience, since you could convert it to a <strong id="EN-US_TOPIC_0000001188270504__b22902184165312">LEFT OUTER JOIN</strong> by switching the left and right inputs.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l89479a80bf574dc09b925ec2af24d1f5">FULL [ OUTER ] JOIN<p id="EN-US_TOPIC_0000001188270504__a10cb39850ed84684bf33feeee10d395d"><a name="EN-US_TOPIC_0000001188270504__l89479a80bf574dc09b925ec2af24d1f5"></a><a name="l89479a80bf574dc09b925ec2af24d1f5"></a>Returns all the joined rows, pluses one row for each unmatched left-hand row (extended with <strong id="EN-US_TOPIC_0000001188270504__b687856549">NULL</strong> on the right), and pluses one row for each unmatched right-hand row (extended with <strong id="EN-US_TOPIC_0000001188270504__b487806749">NULL</strong> on the left).</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__lb429873957934a9d9b3ee94f4332d50c">CROSS JOIN<p id="EN-US_TOPIC_0000001188270504__a8cf78cb18cc6481ebb952d6bf366e3fa"><a name="EN-US_TOPIC_0000001188270504__lb429873957934a9d9b3ee94f4332d50c"></a><a name="lb429873957934a9d9b3ee94f4332d50c"></a><strong id="EN-US_TOPIC_0000001188270504__b39807687165312">CROSS JOIN</strong> is equivalent to <strong id="EN-US_TOPIC_0000001188270504__b22724870165312">INNER JOIN ON (TRUE)</strong>, which means no rows are removed by qualification. These join types are just a notational convenience, since they do nothing you could not do with plain <strong id="EN-US_TOPIC_0000001188270504__b57649824165312">FROM</strong> and <strong id="EN-US_TOPIC_0000001188270504__b49086369165312">WHERE</strong>.</p>
|
||
<div class="note" id="EN-US_TOPIC_0000001188270504__nf11ef7211de149748ba81920b7490453"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001188270504__aac40d1b0199e42cc8aeb72c2c8ba73b8">For the <strong id="EN-US_TOPIC_0000001188270504__b1381443612526">INNER</strong> and <strong id="EN-US_TOPIC_0000001188270504__b5722106512526">OUTER</strong> join types, a join condition must be specified, namely exactly one of <strong id="EN-US_TOPIC_0000001188270504__b4522754412526">NATURAL ON</strong>, <strong id="EN-US_TOPIC_0000001188270504__b439471212526">join_condition</strong>, or <strong id="EN-US_TOPIC_0000001188270504__b3955241112526">USING (join_column [, ...])</strong>. For <strong id="EN-US_TOPIC_0000001188270504__b2042738712526">CROSS JOIN</strong>, none of these clauses can appear.</p>
|
||
</div></div>
|
||
</li></ul>
|
||
<p id="EN-US_TOPIC_0000001188270504__a2e75b57031c34176acfcb6b6435d7167"><strong id="EN-US_TOPIC_0000001188270504__b27594769115811">CROSS JOIN</strong> and <strong id="EN-US_TOPIC_0000001188270504__b47026336115811">INNER JOIN</strong> produce a simple Cartesian product, the same result as you get from listing the two items at the top level of <strong id="EN-US_TOPIC_0000001188270504__b20583840115811">FROM</strong>.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l849b5f8b1c044e69b209289558768817">ON join_condition<p id="EN-US_TOPIC_0000001188270504__a20ef3ea8919b439aa87cd0dc7571a357"><a name="EN-US_TOPIC_0000001188270504__l849b5f8b1c044e69b209289558768817"></a><a name="l849b5f8b1c044e69b209289558768817"></a>A join condition to define which rows have matches in joins. Example: ON left_table.a = right_table.a</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__lca3e76b8f97b4ee8b6e7f8471276d349">USING(join_column[, ...])<p id="EN-US_TOPIC_0000001188270504__a4f2f19f17b1545c69c77dbe8bc857bfa"><a name="EN-US_TOPIC_0000001188270504__lca3e76b8f97b4ee8b6e7f8471276d349"></a><a name="lca3e76b8f97b4ee8b6e7f8471276d349"></a>ON left_table.a = right_table.a AND left_table.b = right_table.b ... abbreviation. Corresponding columns must have the same name.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__le3c61ca141ef45368156e04c2ed1f512">NATURAL<p id="EN-US_TOPIC_0000001188270504__a32714f6bca7745039e3f5d591fb9bcb8"><a name="EN-US_TOPIC_0000001188270504__le3c61ca141ef45368156e04c2ed1f512"></a><a name="le3c61ca141ef45368156e04c2ed1f512"></a><strong id="EN-US_TOPIC_0000001188270504__b28329483165312">NATURAL</strong> is a shorthand for a <strong id="EN-US_TOPIC_0000001188270504__b53638763165312">USING</strong> list that mentions all columns in the two tables that have the same names.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l0b0a4a10049b4e24b435aa649a97a6ee">from item<p id="EN-US_TOPIC_0000001188270504__ad3bbe217682e464ca0484ceff423bfda"><a name="EN-US_TOPIC_0000001188270504__l0b0a4a10049b4e24b435aa649a97a6ee"></a><a name="l0b0a4a10049b4e24b435aa649a97a6ee"></a>Specifies the name of the query source object connected.</p>
|
||
</li></ul>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l5ed04461b9cc46e2b13af8b5fe03163d"><strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0059777449_ab092ae6f80ed44c2a1d825c9e1c4711c">WHERE clause</strong><p id="EN-US_TOPIC_0000001188270504__a498e069f7dab465c92a49a0bf8f3b97e">The <strong id="EN-US_TOPIC_0000001188270504__b216579661871">WHERE</strong> clause forms an expression for row selection to narrow down the query range of <strong id="EN-US_TOPIC_0000001188270504__b607039731871">SELECT</strong>. The condition is any expression that evaluates to a result of Boolean type. Rows that do not satisfy this condition will be eliminated from the output.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__p451911248217">In the <strong id="EN-US_TOPIC_0000001188270504__b7772747133">WHERE</strong> clause, you can use the operator (+) to convert a table join to an outer join. However, this method is not recommended because it is not the standard SQL syntax and may raise syntax compatibility issues during platform migration. There are many restrictions on using the operator (+):</p>
|
||
<ol id="EN-US_TOPIC_0000001188270504__ol747718983910"><li id="EN-US_TOPIC_0000001188270504__li18477899391">It can appear only in the <strong id="EN-US_TOPIC_0000001188270504__b1143182342112">WHERE</strong> clause.</li><li id="EN-US_TOPIC_0000001188270504__li1778175219393">If a table join has been specified in the <strong id="EN-US_TOPIC_0000001188270504__b1714938192118">FROM</strong> clause, the operator (+) cannot be used in the <strong id="EN-US_TOPIC_0000001188270504__b168013598226">WHERE</strong> clause.</li><li id="EN-US_TOPIC_0000001188270504__li4171204654016">The operator (+) can work only on columns of tables or views, instead of on expressions.</li><li id="EN-US_TOPIC_0000001188270504__li7843161720419">If table A and table B have multiple join conditions, the operator (+) must be specified in all the conditions. Otherwise, the operator (+) will not take effect, and the table join will be converted into an inner join without any prompt information.</li><li id="EN-US_TOPIC_0000001188270504__li67091645184214">Tables specified in a join condition where the operator (+) works cannot cross queries or subqueries. If tables where the operator (+) works are not in the <strong id="EN-US_TOPIC_0000001188270504__b124881126361">FROM</strong> clause of the current query or subquery, an error will be reported. If a peer table for the operator (+) does not exist, no error will be reported and the table join will be converted into an inner join.</li><li id="EN-US_TOPIC_0000001188270504__li956851994516">Expressions where the operator (+) is used cannot be directly connected through <strong id="EN-US_TOPIC_0000001188270504__b3455192410396">OR</strong>.</li><li id="EN-US_TOPIC_0000001188270504__li877821795115">If a column where the operator (+) works is compared with a constant, the expression becomes a part of the join condition.</li><li id="EN-US_TOPIC_0000001188270504__li181271736185611">A table cannot have multiple foreign tables.</li><li id="EN-US_TOPIC_0000001188270504__li11775290617">The operator (+) can appear only in the following expressions: comparison, NOT, ANY, ALL, IN, NULLIF, IS DISTINCT FROM, and IS OF expressions. It is not allowed in other types of expressions. In addition, these expressions cannot be connected through <strong id="EN-US_TOPIC_0000001188270504__b10206144812457">AND</strong> or <strong id="EN-US_TOPIC_0000001188270504__b15275155020451">OR</strong>.</li><li id="EN-US_TOPIC_0000001188270504__li19826194173715">The operator (+) can be used to convert a table join only to a left or right outer join, instead of a full join. That is, the operator (+) cannot be specified on both tables of an expression.</li></ol>
|
||
<div class="notice" id="EN-US_TOPIC_0000001188270504__n5f43b179d9f34149be464fce8b2aeb4d"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="EN-US_TOPIC_0000001188270504__a98287df108344eec9cc182844588b8f7">For the <strong id="EN-US_TOPIC_0000001188270504__b2774261871">WHERE</strong> clause, if a special character % _ or \ is queried in <strong id="EN-US_TOPIC_0000001188270504__b24968381871">LIKE</strong>, add the slash (\) before each character.</p>
|
||
</div></div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p71979157395">Examples:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen4959103213394"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||
<span class="normal"> 2</span>
|
||
<span class="normal"> 3</span>
|
||
<span class="normal"> 4</span>
|
||
<span class="normal"> 5</span>
|
||
<span class="normal"> 6</span>
|
||
<span class="normal"> 7</span>
|
||
<span class="normal"> 8</span>
|
||
<span class="normal"> 9</span>
|
||
<span class="normal">10</span>
|
||
<span class="normal">11</span>
|
||
<span class="normal">12</span>
|
||
<span class="normal">13</span>
|
||
<span class="normal">14</span>
|
||
<span class="normal">15</span>
|
||
<span class="normal">16</span>
|
||
<span class="normal">17</span>
|
||
<span class="normal">18</span>
|
||
<span class="normal">19</span>
|
||
<span class="normal">20</span>
|
||
<span class="normal">21</span>
|
||
<span class="normal">22</span>
|
||
<span class="normal">23</span>
|
||
<span class="normal">24</span>
|
||
<span class="normal">25</span>
|
||
<span class="normal">26</span>
|
||
<span class="normal">27</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">tt01</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="nb">int</span><span class="p">,</span><span class="n">content</span><span class="w"> </span><span class="nb">varchar</span><span class="p">(</span><span class="mi">50</span><span class="p">));</span>
|
||
|
||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">tt01</span><span class="w"> </span><span class="k">values</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="s1">'Jack say ''hello'''</span><span class="p">);</span>
|
||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">tt01</span><span class="w"> </span><span class="k">values</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="s1">'Rose do 50%'</span><span class="p">);</span>
|
||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">tt01</span><span class="w"> </span><span class="k">values</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="s1">'Lilei say ''world'''</span><span class="p">);</span>
|
||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">tt01</span><span class="w"> </span><span class="k">values</span><span class="w"> </span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="s1">'Hanmei do 100%'</span><span class="p">);</span>
|
||
|
||
<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tt01</span><span class="p">;</span>
|
||
<span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">content</span>
|
||
<span class="c1">----+-------------------</span>
|
||
<span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Lilei</span><span class="w"> </span><span class="n">say</span><span class="w"> </span><span class="s1">'world'</span>
|
||
<span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Hanmei</span><span class="w"> </span><span class="k">do</span><span class="w"> </span><span class="mi">100</span><span class="o">%</span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Jack</span><span class="w"> </span><span class="n">say</span><span class="w"> </span><span class="s1">'hello'</span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Rose</span><span class="w"> </span><span class="k">do</span><span class="w"> </span><span class="mi">50</span><span class="o">%</span>
|
||
<span class="p">(</span><span class="mi">4</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
|
||
|
||
<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tt01</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">content</span><span class="w"> </span><span class="k">like</span><span class="w"> </span><span class="s1">'%''he%'</span><span class="p">;</span>
|
||
<span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">content</span>
|
||
<span class="c1">----+------------------</span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Jack</span><span class="w"> </span><span class="n">say</span><span class="w"> </span><span class="s1">'hello'</span>
|
||
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
||
|
||
<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tt01</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">content</span><span class="w"> </span><span class="k">like</span><span class="w"> </span><span class="s1">'%50\%%'</span><span class="p">;</span>
|
||
<span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">content</span>
|
||
<span class="c1">----+-------------</span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Rose</span><span class="w"> </span><span class="k">do</span><span class="w"> </span><span class="mi">50</span><span class="o">%</span>
|
||
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__lc201eba7112e4143be75887a2428c2df"><strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0059777449_a5526005a5a2944b2a66ac916b8c6fc84">GROUP BY clause</strong><p id="EN-US_TOPIC_0000001188270504__af081e98783fa4cfd80bb7b1c5436eca0">Condenses query results into a single row or selected rows that share the same values for the grouped expressions.</p>
|
||
<ul id="EN-US_TOPIC_0000001188270504__uffe4b3f7648d4d40b3b13a82f4228050"><li id="EN-US_TOPIC_0000001188270504__li87033163719">ROLLUP ( { expression | ( expression [, ...] ) } [, ...] )<div class="p" id="EN-US_TOPIC_0000001188270504__p19294828298"><a name="EN-US_TOPIC_0000001188270504__li87033163719"></a><a name="li87033163719"></a>ROLLUP calculates the standard aggregation value specified by an ordered grouping column in GROUP BY, creates a high-level partial sum from right to left, and finally creates a cumulative sum. A group can be regarded as a series of grouping sets. Example:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen9728112317127"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="k">ROLLUP</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">,</span><span class="k">c</span><span class="p">)</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p712410286127">Or</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen8602154311284"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="k">GROUPING</span><span class="w"> </span><span class="k">SETS</span><span class="p">((</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">,</span><span class="k">c</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="p">))</span><span class="w"> </span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p12377102713">The elements in the <strong id="EN-US_TOPIC_0000001188270504__b61891716163118">ROLLUP</strong> clause can be independent fields or expressions, or a list contained in parentheses. If it is a list in parentheses, they must be a whole when the grouping set is generated. Example:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen12406193952720"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="k">ROLLUP</span><span class="w"> </span><span class="p">((</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">c</span><span class="p">,</span><span class="n">d</span><span class="p">))</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p1710152832718">Or</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen1243812292818"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">GROUPING</span><span class="w"> </span><span class="k">SETS</span><span class="w"> </span><span class="p">((</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">,</span><span class="k">c</span><span class="p">,</span><span class="n">d</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">c</span><span class="p">,</span><span class="n">d</span><span class="w"> </span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="p">))</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__lb1941f0ce24e41dc96926663736e9231">CUBE ( { expression | ( expression [, ...] ) } [, ...] )<p id="EN-US_TOPIC_0000001188270504__a79b2f0b3c7ae4daca07f80844e0443bf"><a name="EN-US_TOPIC_0000001188270504__lb1941f0ce24e41dc96926663736e9231"></a><a name="lb1941f0ce24e41dc96926663736e9231"></a>A CUBE grouping is an extension to the GROUP BY clause that creates subtotals for all of the possible combinations of the given list of grouping columns (or expressions). In terms of multidimensional analysis, CUBE generates all the subtotals that could be calculated for a data cube with the specified dimensions. For example, given three expressions (n=3) in the CUBE clause, the operation results in 2<sup id="EN-US_TOPIC_0000001188270504__en-us_topic_0059777449_sup5904338911212">n</sup> = 2<sup id="EN-US_TOPIC_0000001188270504__en-us_topic_0059777449_sup37925156112058">3</sup> = 8 groupings. Rows grouped on the values of <em id="EN-US_TOPIC_0000001188270504__i73561029173711">n</em> expressions are called regular rows, and the rest are called superaggregate rows. Example:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen1050824783616"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="k">CUBE</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">,</span><span class="k">c</span><span class="p">)</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p138451506373">Or</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen4177145543713"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="k">GROUPING</span><span class="w"> </span><span class="k">SETS</span><span class="p">((</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">,</span><span class="k">c</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="k">c</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="n">b</span><span class="p">,</span><span class="k">c</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="n">b</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="k">c</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="p">))</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p4498944173219">The elements in the <strong id="EN-US_TOPIC_0000001188270504__b931911853116">CUBE</strong> clause can be independent fields or expressions, or a list contained in parentheses. If it is a list in parentheses, they must be a whole when the grouping set is generated. Example:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen154882035153618"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="k">CUBE</span><span class="w"> </span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="n">b</span><span class="p">,</span><span class="w"> </span><span class="k">c</span><span class="p">),</span><span class="w"> </span><span class="n">d</span><span class="p">)</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p159212169378">Or</p>
|
||
<pre class="screen" id="EN-US_TOPIC_0000001188270504__screen156717216375">GROUP BY GROUPING SETS ((a,b,c,d), (a,b,c), (a), ( ))</pre>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__lf3d7ad4f0cbb481b887dfd5957a41994">GROUPING SETS ( grouping_element [, ...] )<p id="EN-US_TOPIC_0000001188270504__a2502faedd2174d0694d555436e320e8a"><a name="EN-US_TOPIC_0000001188270504__lf3d7ad4f0cbb481b887dfd5957a41994"></a><a name="lf3d7ad4f0cbb481b887dfd5957a41994"></a><strong id="EN-US_TOPIC_0000001188270504__b842352706203446">GROUPING SETS</strong> is another extension to the <strong id="EN-US_TOPIC_0000001188270504__b1354124455915">GROUP BY</strong> clause. It allows users to specify multiple <strong id="EN-US_TOPIC_0000001188270504__b9871185615914">GROUP BY</strong> clauses. The option is used to define a grouping set. Each grouping set needs to be included in a separate parenthesis. A blank parenthesis (()) indicates that all data is processed as a group. This improves efficiency by trimming away unnecessary data. You can specify the required data group for query.</p>
|
||
</li></ul>
|
||
<div class="notice" id="EN-US_TOPIC_0000001188270504__n4e350790c6e748f3bfc9e6550504f556"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="EN-US_TOPIC_0000001188270504__a6d72dd156ee54a3c92f5e09580019e07">If the <strong id="EN-US_TOPIC_0000001188270504__b6619226165312">SELECT</strong> list expression quotes some ungrouped fields and no aggregate function is used, an error is displayed. This is because multiple values may be returned for ungrouped fields.</p>
|
||
</div></div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l9e92a079e696408fba467918a3f7f69e"><strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0059777449_en-us_topic_0058966196_b569525192310">HAVING clause</strong><p id="EN-US_TOPIC_0000001188270504__a4ae31529bb8341eaa4e4a1efc0881ac4">Selects special groups by working with the <strong id="EN-US_TOPIC_0000001188270504__b895988165312">GROUP BY</strong> clause. The <strong id="EN-US_TOPIC_0000001188270504__b188828620411">HAVING</strong> clause compares some attributes of groups with a constant. Only groups that matching the logical expression in the <strong id="EN-US_TOPIC_0000001188270504__b188214612410">HAVING</strong> clause are extracted.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l2e56de0337984841967f965015cd10c9"><strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0059777449_adf16ecb2293a4e648cdce1e15b691185">WINDOW clause</strong><p id="EN-US_TOPIC_0000001188270504__a538d2e555863408dbb9b1ec97b1b6b36">The general format is <strong id="EN-US_TOPIC_0000001188270504__b168822063419">WINDOW window_name AS ( window_definition ) [, ...]</strong>. <strong id="EN-US_TOPIC_0000001188270504__b98825610413">window_name</strong> is a name can be referenced by <strong id="EN-US_TOPIC_0000001188270504__b18882166543">window_definition</strong>. <strong id="EN-US_TOPIC_0000001188270504__b68821665418">window_definition</strong> can be expressed in the following forms:</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__abffb812844ee490da30385c3cc3b94ba">[ existing_window_name ]</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a136cd8fbca5043d4b9e320b3077b840a">[ PARTITION BY expression [, ...] ]</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a848a505df0664f7fb8596d3636ff1ade">[ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] [, ...] ]</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a2800a9ca19d54d01831fda476e194dea">[ frame_clause ]</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a1a5a0905d70e43908000cf1996758ec5"><strong id="EN-US_TOPIC_0000001188270504__b27637993165312">frame_clause</strong> defines a <strong id="EN-US_TOPIC_0000001188270504__b47415349165312">window frame</strong> for the window function. The window function (not all window functions) depends on <strong id="EN-US_TOPIC_0000001188270504__b7915796122110">window frame</strong> and <strong id="EN-US_TOPIC_0000001188270504__b24084964165312">window frame</strong> is a set of relevant rows of the current query row. <strong id="EN-US_TOPIC_0000001188270504__b18883186340">frame_clause</strong> can be expressed in the following forms:</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a4bff43dadbc046f9a52856dbf3b2eb96">[ RANGE | ROWS ] frame_start</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a6ef4cf011b0c49af878fd9c8a041239a">[ RANGE | ROWS ] BETWEEN frame_start AND frame_end</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__abf63ceafb38045eaaf8a0306ef3f64f8"><strong id="EN-US_TOPIC_0000001188270504__b088356541">frame_start</strong> and <strong id="EN-US_TOPIC_0000001188270504__b1188314612412">frame_end</strong> can be expressed in the following forms:</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__aa1f6425c00c543c6842f57e0d0f01059">UNBOUNDED PRECEDING</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__ad6ae63a081ca495daa1a679b4e08bd80">value PRECEDING (not supported for <strong id="EN-US_TOPIC_0000001188270504__b8664408516">RANGE</strong>)</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a20a8f775f1b2432cb447ffa78e672bdb">CURRENT ROW</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__ad91b75f7e6be4e1ca063b1b955524672">value FOLLOWING (not supported for <strong id="EN-US_TOPIC_0000001188270504__b1703173953">RANGE</strong>)</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a9124a6c116944e00ad00eed4248696e5">UNBOUNDED FOLLOWING</p>
|
||
<div class="notice" id="EN-US_TOPIC_0000001188270504__ne298ee054e1a45418235fcfeda095ea2"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><p id="EN-US_TOPIC_0000001188270504__ab7513bf9ea7646009ede6a92bb8b8c6a">For the query of column storage table, only <strong id="EN-US_TOPIC_0000001188270504__b84235270613531">row_number</strong> window function is supported, <strong id="EN-US_TOPIC_0000001188270504__b842352706135326">frame_clause</strong> is not supported.</p>
|
||
</div></div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l8fb153a4047e47bda6729017c7dc9062"><strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0059777449_a8de7d398c0474e199d83693f7210e221">UNION clause</strong><p id="EN-US_TOPIC_0000001188270504__a38ff648ca4fd465c830b579bf0e5e869">Computes the set union of the rows returned by the involved <strong id="EN-US_TOPIC_0000001188270504__b22920815165312">SELECT</strong> statements.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__acec5bbc60aa74f57bd2477e87750627b">The <strong id="EN-US_TOPIC_0000001188270504__b59613405165312">UNION</strong> clause has the following constraints:</p>
|
||
<ul id="EN-US_TOPIC_0000001188270504__u2c4451bdebda4f3ea834add8f434a1f9"><li id="EN-US_TOPIC_0000001188270504__l9d8766440527429fa5a3b01d2871c951">By default, the result of <strong id="EN-US_TOPIC_0000001188270504__b50740860165312">UNION</strong> does not contain any duplicate rows unless the <strong id="EN-US_TOPIC_0000001188270504__b54014562165312">ALL</strong> option is specified.</li><li id="EN-US_TOPIC_0000001188270504__l420e6a20da264762bbb4d70ebf6bbe4a">Multiple <strong id="EN-US_TOPIC_0000001188270504__b54744398165312">UNION</strong> operators in the same <strong id="EN-US_TOPIC_0000001188270504__b22937534165312">SELECT</strong> statement are evaluated left to right, unless otherwise specified by parentheses.</li><li id="EN-US_TOPIC_0000001188270504__l5fb82b799a754db2b99eb8dedfa98e08"><strong id="EN-US_TOPIC_0000001188270504__b188415619411">FOR UPDATE</strong> cannot be specified either for a <strong id="EN-US_TOPIC_0000001188270504__b47394474165312">UNION</strong> result or for any input of a <strong id="EN-US_TOPIC_0000001188270504__b08841461048">UNION</strong>.</li></ul>
|
||
<p id="EN-US_TOPIC_0000001188270504__a20ea8dc0eaa14a4a8d9b02b7d945aea9">General expression:</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a88c50b7a8af94acf8bd3b36f2216083f">select_statement UNION [ALL] select_statement</p>
|
||
<ul id="EN-US_TOPIC_0000001188270504__u2e7bb49e3a5147619690a2cd6bfcc743"><li id="EN-US_TOPIC_0000001188270504__l608d6dbbef774e8096497e65b8affff8"><strong id="EN-US_TOPIC_0000001188270504__b17672163713177">select_statement</strong> can be any <strong id="EN-US_TOPIC_0000001188270504__b55452953165312">SELECT</strong> statement without an <strong id="EN-US_TOPIC_0000001188270504__b29314535165312">ORDER BY</strong>, <strong id="EN-US_TOPIC_0000001188270504__b62504228165312">LIMIT</strong>, or <strong id="EN-US_TOPIC_0000001188270504__b25667145165312">FOR UPDATE</strong> clause.</li><li id="EN-US_TOPIC_0000001188270504__lfbf7f8d3cfb24d67af33811448e6815f"><strong id="EN-US_TOPIC_0000001188270504__b32706776165312">ORDER BY</strong> and <strong id="EN-US_TOPIC_0000001188270504__b25925531165312">LIMIT</strong> in parentheses can be attached in a sub-expression.</li></ul>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l298d7839443c48b0ad956e4d593908ca"><strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0059777449_a23005d3a4f4b49f088a473c8f9f515b4">INTERSECT clause</strong><p id="EN-US_TOPIC_0000001188270504__ac7fad566b05941b1b96ad9cc7ae91ba0">Computes the set intersection of rows returned by the involved <strong id="EN-US_TOPIC_0000001188270504__b46606525165312">SELECT</strong> statements. The result of <strong id="EN-US_TOPIC_0000001188270504__b16805541165312">INTERSECT</strong> does not contain any duplicate rows.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a954ddadb90fc4b769aa6f14a95b795de">The <strong id="EN-US_TOPIC_0000001188270504__b1292909165312">INTERSECT</strong> clause has the following constraints:</p>
|
||
<ul id="EN-US_TOPIC_0000001188270504__u706d276aa4b44925922a6bfef77f1c64"><li id="EN-US_TOPIC_0000001188270504__ld94323303b1e437984123c5025dae277">Multiple <strong id="EN-US_TOPIC_0000001188270504__b42241271165312">INTERSECT</strong> operators in the same <strong id="EN-US_TOPIC_0000001188270504__b44627121165312">SELECT</strong> statement are evaluated left to right, unless otherwise specified by parentheses.</li><li id="EN-US_TOPIC_0000001188270504__l8cc6f78448cf4abf8093195991bcc67d">Processing <strong id="EN-US_TOPIC_0000001188270504__b23154256165312">INTERSECT</strong> preferentially when <strong id="EN-US_TOPIC_0000001188270504__b7061714165312">UNION</strong> and <strong id="EN-US_TOPIC_0000001188270504__b63555430165312">INTERSECT</strong> operations are executed for results of multiple <strong id="EN-US_TOPIC_0000001188270504__b35127966165312">SELECT</strong> statements.</li></ul>
|
||
<p id="EN-US_TOPIC_0000001188270504__ac32510f92fee4eb6a3ef0aac8419609b">General format:</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a407b411f1f5c4cab8d6715633dc7fc73">select_statement INTERSECT select_statement</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a5f020d8bee344b7d94b15cde20558b07"><strong id="EN-US_TOPIC_0000001188270504__b1096253856">select_statement</strong> can be any <strong id="EN-US_TOPIC_0000001188270504__b11966537518">SELECT</strong> statement without a <strong id="EN-US_TOPIC_0000001188270504__b16960531555">FOR UPDATE</strong> clause.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l5dba6ea2333941f2b24f849c54a49c6e"><strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0059777449_ae32457c88d66412cad9a4d3b14e0a6a6">EXCEPT clause</strong><p id="EN-US_TOPIC_0000001188270504__a285e76f9379e4841b91653825803ff1f"><strong id="EN-US_TOPIC_0000001188270504__b4886161645">EXCEPT</strong> clause has the following common form:</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a23d64c23c04f4780ba4a323f17ba72f9">select_statement EXCEPT [ ALL ] select_statement</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__aa6b2967670584bde999a01b01d0e708a"><strong id="EN-US_TOPIC_0000001188270504__b8423527069460">select_statement</strong> can be any <strong id="EN-US_TOPIC_0000001188270504__b84235270694620">SELECT</strong> statement without a <strong id="EN-US_TOPIC_0000001188270504__b84235270694641">FOR UPDATE</strong> clause.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a8e38b06854b949399855d85fd2f9593c">The <strong id="EN-US_TOPIC_0000001188270504__b1188616548">EXCEPT</strong> operator computes the set of rows that are in the result of the left <strong id="EN-US_TOPIC_0000001188270504__b1188619616417">SELECT</strong> statement but not in the result of the right one.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__acd0ded326ac340a0b5e1f81216a0bbc0">The result of <strong id="EN-US_TOPIC_0000001188270504__b239658141871">EXCEPT</strong> does not contain any duplicate rows unless the <strong id="EN-US_TOPIC_0000001188270504__b36714251165312">ALL</strong> option is specified. To execute <strong id="EN-US_TOPIC_0000001188270504__b1121383211365">ALL</strong>, a row that has <em id="EN-US_TOPIC_0000001188270504__i52135327367">m</em> duplicates in the left table and <em id="EN-US_TOPIC_0000001188270504__i1421383217365">n</em> duplicates in the right table will appear MAX(<em id="EN-US_TOPIC_0000001188270504__i1213132153618">m</em>–<em id="EN-US_TOPIC_0000001188270504__i17213193263615">n</em>, 0) times in the result set.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__af36e276769b34fabb85d8a059993c64d">Multiple <strong id="EN-US_TOPIC_0000001188270504__b331917671871">EXCEPT</strong> operators in the same <strong id="EN-US_TOPIC_0000001188270504__b302904481871">SELECT</strong> statement are evaluated left to right, unless parentheses dictate otherwise. <strong id="EN-US_TOPIC_0000001188270504__b98871965417">EXCEPT</strong> binds at the same level as <strong id="EN-US_TOPIC_0000001188270504__b198871361745">UNION</strong>.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a19a3f01d0c584ef3b7e52a938e359e6a">Currently, <strong id="EN-US_TOPIC_0000001188270504__b63895034115022">FOR UPDATE</strong> and <strong id="EN-US_TOPIC_0000001188270504__b38184398115022">FOR SHARE</strong> cannot be specified either for an <strong id="EN-US_TOPIC_0000001188270504__b8115266115022">EXCEPT</strong> result or for any input of an <strong id="EN-US_TOPIC_0000001188270504__b5928535115022">EXCEPT</strong>.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l9cdda14d3e8a4089892b208af76c9a37"><strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0059777449_aea9bede2e860482a84f84a6a96526a0a">MINUS clause</strong><p id="EN-US_TOPIC_0000001188270504__a3d470f5df6fc4f3c938d4c118588d7e6">Has the same function and syntax as <strong id="EN-US_TOPIC_0000001188270504__b158871961412">EXCEPT</strong> clause.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__lbf7f3b7f0583465b9d202a68547bad43"><strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0059777449_a1d83967957074567a52a5c04221139b8">ORDER BY</strong> clause<p id="EN-US_TOPIC_0000001188270504__a9200c4be10ac4662950f16ce06a338c1">Sorts data retrieved by <strong id="EN-US_TOPIC_0000001188270504__b38833025165312">SELECT</strong> in descending or ascending order. If the <strong id="EN-US_TOPIC_0000001188270504__b56443493165312">ORDER BY</strong> expression contains multiple columns:</p>
|
||
<ul id="EN-US_TOPIC_0000001188270504__u37774813f0c24e6381f2f8989bfe96e2"><li id="EN-US_TOPIC_0000001188270504__l60a88c6e218445d2a44377ec0b0db8ee">If two columns are equal according to the leftmost expression, they are compared according to the next expression and so on.</li><li id="EN-US_TOPIC_0000001188270504__l021cfdca417844e7b29088da17f7022b">If they are equal according to all specified expressions, they are returned in an implementation-dependent order.</li><li id="EN-US_TOPIC_0000001188270504__lafbddd13e11a43c79fc9be2662da3417">Columns sorted by <strong id="EN-US_TOPIC_0000001188270504__b60266477165312">ORDER BY</strong> must be contained in the result retrieved by <strong id="EN-US_TOPIC_0000001188270504__b5527384165312">SELECT</strong>.</li></ul>
|
||
<div class="notice" id="EN-US_TOPIC_0000001188270504__ndc580003a10f43919ea55e4f32e846c2"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><ul id="EN-US_TOPIC_0000001188270504__ul61330919141"><li id="EN-US_TOPIC_0000001188270504__li28231324101616">If <strong id="EN-US_TOPIC_0000001188270504__b14429122413414">ORDER BY</strong> is not specified, the query results are returned following the generation sequence in the database system.</li><li id="EN-US_TOPIC_0000001188270504__li16554652103917">You can add the keyword <strong id="EN-US_TOPIC_0000001188270504__b14838194043420">ASC</strong> (in ascending order) or <strong id="EN-US_TOPIC_0000001188270504__b19839540203412">DESC</strong> (in descending order) next to any expression in the <strong id="EN-US_TOPIC_0000001188270504__b1583915409342">ORDER BY</strong> clause. If the keyword is not specified, <strong id="EN-US_TOPIC_0000001188270504__b51261252153414">ASC</strong> is used by default.</li><li id="EN-US_TOPIC_0000001188270504__li182711816184615">To sort query results by case-insensitive Chinese pinyin, set the encoding mode to <strong id="EN-US_TOPIC_0000001188270504__b8878115843417">UTF-8</strong> or <strong id="EN-US_TOPIC_0000001188270504__b128782058163416">GBK</strong> during database initialization. The commands are as follows:<p id="EN-US_TOPIC_0000001188270504__p571241894614"><strong id="EN-US_TOPIC_0000001188270504__b1911042111369">initdb –E UTF8 –D ../data –locale=zh_CN.UTF-8</strong> or <strong id="EN-US_TOPIC_0000001188270504__b91170216365">initdb –E GBK –D ../data –locale=zh_CN.GBK</strong></p>
|
||
</li></ul>
|
||
</div></div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__li1015010172315"><strong id="EN-US_TOPIC_0000001188270504__b169141735173110">[ { [ LIMIT { count | ALL } ] [ OFFSET start [ ROW | ROWS ] ] } | { LIMIT start, { count | ALL } } ]</strong><p id="EN-US_TOPIC_0000001188270504__p1915191773113">The <strong id="EN-US_TOPIC_0000001188270504__b36752032191917">LIMIT</strong> clause consists of two independent <strong id="EN-US_TOPIC_0000001188270504__b158021933192016">LIMIT</strong> clauses, an <strong id="EN-US_TOPIC_0000001188270504__b1624645911207">OFFSET</strong> clause, and a <strong id="EN-US_TOPIC_0000001188270504__b19883181512259">LIMIT</strong> clause with multiple parameters.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__p12768441173318">LIMIT { count | ALL }</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__p1662510551352">OFFSET start [ ROW | ROWS ]</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__p9461315103612">LIMIT start, { count | ALL }</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__p638092713615"><strong id="EN-US_TOPIC_0000001188270504__b60177494165312">count</strong> in the clauses specifies the maximum number of rows to return, while <strong id="EN-US_TOPIC_0000001188270504__b4726534165312">start</strong> specifies the number of rows to skip before starting to return rows. When both are specified, <strong id="EN-US_TOPIC_0000001188270504__b16681192912300">start</strong> rows are skipped before starting to count the <strong id="EN-US_TOPIC_0000001188270504__b13688329113011">count</strong> rows to be returned. A multi-parameter <strong id="EN-US_TOPIC_0000001188270504__b375703663115">LIMIT</strong> clause cannot be used together with a single-parameter <strong id="EN-US_TOPIC_0000001188270504__b884151133119">LIMIT</strong> or <strong id="EN-US_TOPIC_0000001188270504__b135318488313">OFFSET</strong> clause.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l4993c73d4cce40bf8772c4fd83fe6a74"><strong id="EN-US_TOPIC_0000001188270504__a96a0491d9524437cb7533718a0388bb5">FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY</strong><p id="EN-US_TOPIC_0000001188270504__a43bfcde4b38840d7a48db34c095a2c06">If <strong id="EN-US_TOPIC_0000001188270504__b40135312165312">count</strong> is omitted in a <strong id="EN-US_TOPIC_0000001188270504__b25673492165312">FETCH</strong> clause, it defaults to <strong id="EN-US_TOPIC_0000001188270504__b29734844165312">1</strong>.</p>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__l51dbe86e17254af39ba682715c63d7b5"><strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0059777449_ab96620103b244b2e89a26822674b3efa">FOR UPDATE</strong> clause<p id="EN-US_TOPIC_0000001188270504__a0536daf3bf8d4670be61179ebef8a40e">Locks rows retrieved by <strong id="EN-US_TOPIC_0000001188270504__b66028243165312">SELECT</strong>. This ensures that the rows cannot be modified or deleted by other transactions until the current transaction ends. That is, other transactions that attempt <strong id="EN-US_TOPIC_0000001188270504__b1289018619419">UPDATE</strong>, <strong id="EN-US_TOPIC_0000001188270504__b1789016641">DELETE</strong>, or <strong id="EN-US_TOPIC_0000001188270504__b148901361942">SELECT FOR UPDATE</strong> of these rows will be blocked until the current transaction ends.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a587c31abd0c34802a44f85ecb2b86a84">To avoid waiting for the committing of other transactions, you can apply <strong id="EN-US_TOPIC_0000001188270504__b98904617414">NOWAIT</strong>. Rows to which <strong id="EN-US_TOPIC_0000001188270504__b178901963410">NOWAIT</strong> applies cannot be immediately locked. After <strong id="EN-US_TOPIC_0000001188270504__b1689096642">SELECT FOR UPDATE NOWAIT</strong> is executed, an error is reported.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__ab19fceb97223463aa7e318dc9793d47e"><strong id="EN-US_TOPIC_0000001188270504__b842352706151324">FOR SHARE</strong> behaves similarly, except that it acquires a shared rather than exclusive lock on each retrieved row. A share lock blocks other transaction from performing <strong id="EN-US_TOPIC_0000001188270504__b842352706151345">UPDATE</strong>, <strong id="EN-US_TOPIC_0000001188270504__b842352706151350">DELETE</strong>, or <strong id="EN-US_TOPIC_0000001188270504__b842352706151358">SELECT FOR UPDATE</strong> on these rows, but it does not prevent them from performing <strong id="EN-US_TOPIC_0000001188270504__b84235270615148">SELECT FOR SHARE</strong>.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__ad36535e92d1f4a3fab225ab9a89ab1a6">If specified tables are named in <strong id="EN-US_TOPIC_0000001188270504__b3699224612111">FOR UPDATE</strong> or FOR SHARE, then only rows coming from those tables are locked; any other tables used in <strong id="EN-US_TOPIC_0000001188270504__b5631450112045">SELECT</strong> are simply read as usual. Otherwise, locking all tables in the command.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a66b4206fe1e242218957050eb67acfd6">If <strong id="EN-US_TOPIC_0000001188270504__b30820312239">FOR UPDATE</strong> or FOR SHARE is applied to a view or sub-query, it affects all tables used in the view or sub-query.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__aebdb4c54a447405f8c43685284ee4672">Multiple <strong id="EN-US_TOPIC_0000001188270504__b3624445612246">FOR UPDATE</strong> and <strong id="EN-US_TOPIC_0000001188270504__b84235270694910">FOR SHARE</strong> clauses can be written if it is necessary to specify different locking behaviors for different tables.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a58834869431c42bfbf5099d85adf0189">If the same table is mentioned (or implicitly affected) by both <strong id="EN-US_TOPIC_0000001188270504__b445349112045">FOR UPDATE</strong> and <strong id="EN-US_TOPIC_0000001188270504__b84235270694924">FOR SHARE</strong> clauses, it is processed as <strong id="EN-US_TOPIC_0000001188270504__b2518847312045">FOR UPDATE</strong>. Similarly, a table is processed as <strong id="EN-US_TOPIC_0000001188270504__b2536967312045">NOWAIT</strong> if that is specified in any of the clauses affecting it.</p>
|
||
<div class="notice" id="EN-US_TOPIC_0000001188270504__n851951f548ff40db93bc3ee369de95e5"><span class="noticetitle"><img src="public_sys-resources/notice_3.0-en-us.png"> </span><div class="noticebody"><ul id="EN-US_TOPIC_0000001188270504__u1238a8ae776d412a9c46ae7b2512bd55"><li id="EN-US_TOPIC_0000001188270504__l0c6e0a05ba6d46f28bf6ea9a60eeb3dc">For SQL statements containing <strong id="EN-US_TOPIC_0000001188270504__b123444469275">FOR UPDATE</strong> or <strong id="EN-US_TOPIC_0000001188270504__b9891194814278">FOR SHARE</strong>, their execution plans will be pushed down to DNs. If the pushdown fails, an error will be reported.</li><li id="EN-US_TOPIC_0000001188270504__l741c5708285a4276a903ce44de2ca417">The query of column storage table does not support <strong id="EN-US_TOPIC_0000001188270504__b8423527069502">for update/share</strong>.</li></ul>
|
||
</div></div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__lc7c71618cc724924a555960c63c1ea1e"><strong id="EN-US_TOPIC_0000001188270504__a7e739f1a5bb34f77b10a91e78e931d89">NLS_SORT</strong><p id="EN-US_TOPIC_0000001188270504__acc96146e48c44b609c39ffa285508eb0">Indicates a field to be ordered in a special mode. Currently, only the Chinese Pinyin order and case insensitive order are supported.</p>
|
||
<p id="EN-US_TOPIC_0000001188270504__a10a1aba78d9a45978980b449931f1f6d">Valid value:</p>
|
||
<ul id="EN-US_TOPIC_0000001188270504__u2fffee2a7b59424c95b9a3594e404429"><li id="EN-US_TOPIC_0000001188270504__l94f9eb0fafcf4c8e8e14a7dfde4ffb97">SCHINESE_PINYIN_M: Chinese characters are sorted by pinyin. Currently, only level-1 Chinese characters in the GBK character set can be sorted. To use this sort method, specify <strong id="EN-US_TOPIC_0000001188270504__b842352706162537">GBK</strong> as the encoding format when you create the database. If you do not do so, this value is invalid.</li><li id="EN-US_TOPIC_0000001188270504__l529da51a6f0d4e10ab319158edc13f4c"><strong id="EN-US_TOPIC_0000001188270504__b842352706152248">generic_m_ci</strong>, case-insensitive order.</li></ul>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__lfb50ede63c2c4a7aaa7d9df19535a7f8"><strong id="EN-US_TOPIC_0000001188270504__en-us_topic_0059777449_a5be0bc1fbbf64c788efd07c56efb25d6">PARTITION clause</strong><p id="EN-US_TOPIC_0000001188270504__af9cf82d681c349ce8b20bebbf9d38f96">Queries data in the specified partition of a partitioned table.</p>
|
||
</li></ul>
|
||
</div>
|
||
<div class="section" id="EN-US_TOPIC_0000001188270504__sd5068d2ac49f472d8ad50858ad938849"><h4 class="sectiontitle">Examples</h4><ul id="EN-US_TOPIC_0000001188270504__ul27103155119"><li id="EN-US_TOPIC_0000001188270504__li97116316513"><strong id="EN-US_TOPIC_0000001188270504__b4572134073310">WITH</strong> clause<p id="EN-US_TOPIC_0000001188270504__p28402389519">Obtain the <strong id="EN-US_TOPIC_0000001188270504__b1769470813105948">temp_t</strong> temporary table by a subquery and query all records in this table.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen1156450135114"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">WITH</span><span class="w"> </span><span class="n">temp_t</span><span class="p">(</span><span class="n">name</span><span class="p">,</span><span class="n">isdba</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="p">(</span><span class="k">SELECT</span><span class="w"> </span><span class="n">usename</span><span class="p">,</span><span class="n">usesuper</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_user</span><span class="p">)</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">temp_t</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p1699217011524">Explicitly specify <strong id="EN-US_TOPIC_0000001188270504__b1695697421105948">MATERIALIZED</strong> for the <strong id="EN-US_TOPIC_0000001188270504__b890333430105948">with_query</strong> named <strong id="EN-US_TOPIC_0000001188270504__b741607421105948">temp_t</strong>, and then query all data in the <strong id="EN-US_TOPIC_0000001188270504__b193679965105948">temp_t</strong> table.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen0201412105219"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">WITH</span><span class="w"> </span><span class="n">temp_t</span><span class="p">(</span><span class="n">name</span><span class="p">,</span><span class="n">isdba</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">MATERIALIZED</span><span class="w"> </span><span class="p">(</span><span class="k">SELECT</span><span class="w"> </span><span class="n">usename</span><span class="p">,</span><span class="n">usesuper</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_user</span><span class="p">)</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">temp_t</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p1355783218527">Explicitly specify <strong id="EN-US_TOPIC_0000001188270504__b543732718105948">NOT MATERIALIZED</strong> for the <strong id="EN-US_TOPIC_0000001188270504__b948794959105948">with_query</strong> named <strong id="EN-US_TOPIC_0000001188270504__b2049666375105948">temp_t</strong>, and then query all data in the <strong id="EN-US_TOPIC_0000001188270504__b512465793105948">temp_t</strong> table.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen1416711424523"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||
<span class="normal">2</span>
|
||
<span class="normal">3</span>
|
||
<span class="normal">4</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">WITH</span><span class="w"> </span><span class="n">temp_t</span><span class="p">(</span><span class="n">name</span><span class="p">,</span><span class="n">isdba</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="n">MATERIALIZED</span><span class="w"> </span><span class="p">(</span><span class="k">SELECT</span><span class="w"> </span><span class="n">usename</span><span class="p">,</span><span class="n">usesuper</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_user</span><span class="p">)</span>
|
||
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">temp_t</span><span class="w"> </span><span class="n">t1</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="k">LIKE</span><span class="w"> </span><span class="s1">'A%'</span>
|
||
<span class="w"> </span><span class="k">UNION</span><span class="w"> </span><span class="k">ALL</span>
|
||
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">temp_t</span><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="k">LIKE</span><span class="w"> </span><span class="s1">'B%'</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__li7544166132013">Example of the <strong id="EN-US_TOPIC_0000001188270504__b9304192493415">DISTINCT</strong> clause<p id="EN-US_TOPIC_0000001188270504__p1775117916201">Query all the <strong id="EN-US_TOPIC_0000001188270504__b672015381105948">r_reason_sk</strong> records in the <strong id="EN-US_TOPIC_0000001188270504__b2116409760105948"><span id="EN-US_TOPIC_0000001188270504__text1781417972105948">tpcds.</span>reason</strong> table and de-duplicate them.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen419162962016"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||
<span class="normal">2</span>
|
||
<span class="normal">3</span>
|
||
<span class="normal">4</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">SCHEMA</span><span class="w"> </span><span class="n">tpcds</span><span class="p">;</span>
|
||
<span class="k">DROP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason</span><span class="p">;</span>
|
||
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason</span><span class="p">(</span><span class="n">r_reason_sk</span><span class="w"> </span><span class="nb">integer</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="k">null</span><span class="p">,</span><span class="n">r_reason_id</span><span class="w"> </span><span class="nb">char</span><span class="p">(</span><span class="mi">16</span><span class="p">)</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="k">null</span><span class="p">,</span><span class="n">r_reason_desc</span><span class="w"> </span><span class="nb">char</span><span class="p">(</span><span class="mi">100</span><span class="p">));</span>
|
||
<span class="k">SELECT</span><span class="w"> </span><span class="k">DISTINCT</span><span class="p">(</span><span class="n">r_reason_sk</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li></ul>
|
||
<ul id="EN-US_TOPIC_0000001188270504__ul1798615508522"><li id="EN-US_TOPIC_0000001188270504__li2987115015521">Example of the <strong id="EN-US_TOPIC_0000001188270504__b6563197113410">LIMIT</strong> clause<p id="EN-US_TOPIC_0000001188270504__p59947695317">Obtain the first record in the table.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen288692618538"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason</span><span class="w"> </span><span class="k">LIMIT</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p628310413533">Obtain the third record in the table.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen7495135614532"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason</span><span class="w"> </span><span class="k">LIMIT</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">OFFSET</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p10117558533">Obtain the first two records in the table.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen1142402775411"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason</span><span class="w"> </span><span class="k">LIMIT</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__li631824618135">Example of the <strong id="EN-US_TOPIC_0000001188270504__b1480425545016">ORDER BY</strong> clause<p id="EN-US_TOPIC_0000001188270504__p725135614138">Query all records and sort them in alphabetic order.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen4315125101419"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">r_reason_desc</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">r_reason_desc</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__li13411779154">Example of a SELECT list<p id="EN-US_TOPIC_0000001188270504__p86261819111520"><a name="EN-US_TOPIC_0000001188270504__li13411779154"></a><a name="li13411779154"></a>Use table aliases to obtain data from the <strong id="EN-US_TOPIC_0000001188270504__b1852646243105948">pg_user</strong> and <strong id="EN-US_TOPIC_0000001188270504__b1581596316105948">pg_user_status</strong> tables.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen3705229171513"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">a</span><span class="p">.</span><span class="n">usename</span><span class="p">,</span><span class="n">b</span><span class="p">.</span><span class="n">locktime</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_user</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="n">pg_user_status</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">a</span><span class="p">.</span><span class="n">usesysid</span><span class="o">=</span><span class="n">b</span><span class="p">.</span><span class="n">roloid</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li></ul>
|
||
<ul id="EN-US_TOPIC_0000001188270504__ul9259133935711"><li id="EN-US_TOPIC_0000001188270504__li19259163965719">Example of the <strong id="EN-US_TOPIC_0000001188270504__b1876962412525">FULL JOIN</strong> clause<p id="EN-US_TOPIC_0000001188270504__p12955175425719">Fully join the data in the <strong id="EN-US_TOPIC_0000001188270504__b16227183125614">pg_user</strong> and <strong id="EN-US_TOPIC_0000001188270504__b3295635135616">pg_user_status</strong> tables.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen5861188581"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">a</span><span class="p">.</span><span class="n">usename</span><span class="p">,</span><span class="n">b</span><span class="p">.</span><span class="n">locktime</span><span class="p">,</span><span class="n">a</span><span class="p">.</span><span class="n">usesuper</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_user</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="k">FULL</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">pg_user_status</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="k">on</span><span class="w"> </span><span class="n">a</span><span class="p">.</span><span class="n">usesysid</span><span class="o">=</span><span class="n">b</span><span class="p">.</span><span class="n">roloid</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li></ul>
|
||
<ul id="EN-US_TOPIC_0000001188270504__ul7917790596"><li id="EN-US_TOPIC_0000001188270504__li139171596591">Example of the <strong id="EN-US_TOPIC_0000001188270504__b25911218165614">GROUP BY</strong> clause<p id="EN-US_TOPIC_0000001188270504__p14900330165918">Create the sales table <strong id="EN-US_TOPIC_0000001188270504__b5180184865618">sale</strong>.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen43498306010"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||
<span class="normal"> 2</span>
|
||
<span class="normal"> 3</span>
|
||
<span class="normal"> 4</span>
|
||
<span class="normal"> 5</span>
|
||
<span class="normal"> 6</span>
|
||
<span class="normal"> 7</span>
|
||
<span class="normal"> 8</span>
|
||
<span class="normal"> 9</span>
|
||
<span class="normal">10</span>
|
||
<span class="normal">11</span>
|
||
<span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">sales</span><span class="w"> </span><span class="p">(</span>
|
||
<span class="w"> </span><span class="n">item</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">10</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="k">year</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">4</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">quantity</span><span class="w"> </span><span class="nb">INT</span>
|
||
<span class="p">);</span>
|
||
|
||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">sales</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'apple'</span><span class="p">,</span><span class="w"> </span><span class="s1">'2018'</span><span class="p">,</span><span class="w"> </span><span class="mi">800</span><span class="p">);</span>
|
||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">sales</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'apple'</span><span class="p">,</span><span class="w"> </span><span class="s1">'2018'</span><span class="p">,</span><span class="w"> </span><span class="mi">1000</span><span class="p">);</span>
|
||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">sales</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'banana'</span><span class="p">,</span><span class="w"> </span><span class="s1">'2018'</span><span class="p">,</span><span class="w"> </span><span class="mi">500</span><span class="p">);</span>
|
||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">sales</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'banana'</span><span class="p">,</span><span class="w"> </span><span class="s1">'2018'</span><span class="p">,</span><span class="w"> </span><span class="mi">600</span><span class="p">);</span>
|
||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">sales</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'apple'</span><span class="p">,</span><span class="w"> </span><span class="s1">'2019'</span><span class="p">,</span><span class="w"> </span><span class="mi">1200</span><span class="p">);</span>
|
||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">sales</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'banana'</span><span class="p">,</span><span class="w"> </span><span class="s1">'2019'</span><span class="p">,</span><span class="w"> </span><span class="mi">1800</span><span class="p">);</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p10633103335817">Group by the combination of product and year:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen1366218371409"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">item</span><span class="p">,</span><span class="w"> </span><span class="k">year</span><span class="p">,</span><span class="w"> </span><span class="k">SUM</span><span class="p">(</span><span class="n">quantity</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">sales</span><span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">item</span><span class="p">,</span><span class="w"> </span><span class="k">year</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p166011217604">Use<strong id="EN-US_TOPIC_0000001188270504__b2830835195717"> GROUPING SETS</strong> to specify customized grouping sets and query the results. The following query returns the total sales calculated by product and year, plus the total sales calculated by product, plus the total sales calculated by year.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen1819851461017"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||
<span class="normal"> 2</span>
|
||
<span class="normal"> 3</span>
|
||
<span class="normal"> 4</span>
|
||
<span class="normal"> 5</span>
|
||
<span class="normal"> 6</span>
|
||
<span class="normal"> 7</span>
|
||
<span class="normal"> 8</span>
|
||
<span class="normal"> 9</span>
|
||
<span class="normal">10</span>
|
||
<span class="normal">11</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="k">coalesce</span><span class="w"> </span><span class="p">(</span><span class="n">item</span><span class="p">,</span><span class="w"> </span><span class="s1">'all products'</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="ss">"Product"</span><span class="p">,</span>
|
||
<span class="k">coalesce</span><span class="w"> </span><span class="p">(</span><span class="k">year</span><span class="p">,</span><span class="s1">'all years'</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="ss">"Year"</span><span class="p">,</span>
|
||
<span class="k">SUM</span><span class="w"> </span><span class="p">(</span><span class="n">quantity</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="ss">"Sales"</span>
|
||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">sales</span>
|
||
<span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="k">GROUPING</span><span class="w"> </span><span class="k">SETS</span><span class="w"> </span><span class="p">(</span>
|
||
<span class="w"> </span><span class="p">(</span><span class="n">item</span><span class="p">,</span><span class="w"> </span><span class="k">year</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="p">(</span><span class="n">item</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="p">(</span><span class="k">year</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="p">()</span>
|
||
<span class="w"> </span><span class="p">)</span>
|
||
<span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">item</span><span class="p">,</span><span class="k">year</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p1719212171018">As the number of grouping columns increase, it is difficult to use <strong id="EN-US_TOPIC_0000001188270504__b944515311820">GROUPING SETS</strong> to list all possible groups. In this case, you can use <strong id="EN-US_TOPIC_0000001188270504__b19232125111917">GROUPING SETS CUBE</strong>.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen85558545157"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||
<span class="normal">2</span>
|
||
<span class="normal">3</span>
|
||
<span class="normal">4</span>
|
||
<span class="normal">5</span>
|
||
<span class="normal">6</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="k">coalesce</span><span class="w"> </span><span class="p">(</span><span class="n">item</span><span class="p">,</span><span class="w"> </span><span class="s1">'all products'</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="ss">"Product"</span><span class="p">,</span>
|
||
<span class="k">coalesce</span><span class="w"> </span><span class="p">(</span><span class="k">year</span><span class="p">,</span><span class="s1">'all years'</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="ss">"Year"</span><span class="p">,</span>
|
||
<span class="k">SUM</span><span class="w"> </span><span class="p">(</span><span class="n">quantity</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="ss">"Sales"</span>
|
||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">sales</span>
|
||
<span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="k">CUBE</span><span class="w"> </span><span class="p">(</span><span class="n">item</span><span class="p">,</span><span class="k">year</span><span class="p">)</span>
|
||
<span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">item</span><span class="p">,</span><span class="k">year</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p1021244314152">GROUPING SETS ROLLUP is used to summarize the results at each level. The following query returns the total sales calculated by the combination of product and year, plus the total sales calculated by product, and plus the total sales calculated by year.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen610452722113"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||
<span class="normal">2</span>
|
||
<span class="normal">3</span>
|
||
<span class="normal">4</span>
|
||
<span class="normal">5</span>
|
||
<span class="normal">6</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="k">coalesce</span><span class="w"> </span><span class="p">(</span><span class="n">item</span><span class="p">,</span><span class="w"> </span><span class="s1">'all products'</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="ss">"Product"</span><span class="p">,</span>
|
||
<span class="k">coalesce</span><span class="w"> </span><span class="p">(</span><span class="k">year</span><span class="p">,</span><span class="s1">'all years'</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="ss">"Year"</span><span class="p">,</span>
|
||
<span class="k">SUM</span><span class="w"> </span><span class="p">(</span><span class="n">quantity</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="ss">"Sales"</span>
|
||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">sales</span>
|
||
<span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="k">ROLLUP</span><span class="w"> </span><span class="p">(</span><span class="n">item</span><span class="p">,</span><span class="k">year</span><span class="p">)</span>
|
||
<span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">item</span><span class="p">,</span><span class="k">year</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li></ul>
|
||
<ul id="EN-US_TOPIC_0000001188270504__ul12426923153617"><li id="EN-US_TOPIC_0000001188270504__li84271623113616">Example of the <strong id="EN-US_TOPIC_0000001188270504__b1034721833910">UNION</strong> clause<p id="EN-US_TOPIC_0000001188270504__p19666182763610">Combine the content starting with W and N in the <strong id="EN-US_TOPIC_0000001188270504__b521213518393">r_reason_desc</strong> column in the <strong id="EN-US_TOPIC_0000001188270504__b811865194014"><span id="EN-US_TOPIC_0000001188270504__text132414842713">tpcds.</span>reason</strong> table.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen12510104012363"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||
<span class="normal">2</span>
|
||
<span class="normal">3</span>
|
||
<span class="normal">4</span>
|
||
<span class="normal">5</span>
|
||
<span class="normal">6</span>
|
||
<span class="normal">7</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">r_reason_sk</span><span class="p">,</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason</span><span class="p">.</span><span class="n">r_reason_desc</span>
|
||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason</span>
|
||
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason</span><span class="p">.</span><span class="n">r_reason_desc</span><span class="w"> </span><span class="k">LIKE</span><span class="w"> </span><span class="s1">'W%'</span>
|
||
<span class="k">UNION</span>
|
||
<span class="k">SELECT</span><span class="w"> </span><span class="n">r_reason_sk</span><span class="p">,</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason</span><span class="p">.</span><span class="n">r_reason_desc</span>
|
||
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason</span>
|
||
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason</span><span class="p">.</span><span class="n">r_reason_desc</span><span class="w"> </span><span class="k">LIKE</span><span class="w"> </span><span class="s1">'N%'</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__li131171843113615">Example of the <strong id="EN-US_TOPIC_0000001188270504__b690821294019">NLS_SORT</strong> clause<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen17944181819376"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">stu_pinyin_info</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">NLSSORT</span><span class="w"> </span><span class="p">(</span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="s1">'NLS_SORT = SCHINESE_PINYIN_M'</span><span class="w"> </span><span class="p">);</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p17189393711">Case-insensitive order:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen6906177183812"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||
<span class="normal">2</span>
|
||
<span class="normal">3</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">stu_icase_info</span><span class="w"> </span><span class="p">(</span><span class="n">id</span><span class="w"> </span><span class="nb">bigint</span><span class="p">,</span><span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="nb">text</span><span class="p">)</span><span class="w"> </span><span class="n">DISTRIBUTE</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">REPLICATION</span><span class="p">;</span>
|
||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">stu_icase_info</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s1">'aaaa'</span><span class="p">),(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="s1">'AAAA'</span><span class="p">);</span>
|
||
<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">stu_icase_info</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">NLSSORT</span><span class="w"> </span><span class="p">(</span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="s1">'NLS_SORT = generic_m_ci'</span><span class="p">);</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__li17281428191819">Example of querying a partitioned table<p id="EN-US_TOPIC_0000001188270504__p14659154514186"><a name="EN-US_TOPIC_0000001188270504__li17281428191819"></a><a name="li17281428191819"></a>Create the partitioned table <strong id="EN-US_TOPIC_0000001188270504__b1858603721105948"><span id="EN-US_TOPIC_0000001188270504__text2104499834105948">tpcds.</span>reason_p</strong>, insert data, and obtain data from the <strong id="EN-US_TOPIC_0000001188270504__b201922621105948">P_05_BEFORE</strong> partition of the table.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen1845518508180"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||
<span class="normal"> 2</span>
|
||
<span class="normal"> 3</span>
|
||
<span class="normal"> 4</span>
|
||
<span class="normal"> 5</span>
|
||
<span class="normal"> 6</span>
|
||
<span class="normal"> 7</span>
|
||
<span class="normal"> 8</span>
|
||
<span class="normal"> 9</span>
|
||
<span class="normal">10</span>
|
||
<span class="normal">11</span>
|
||
<span class="normal">12</span>
|
||
<span class="normal">13</span>
|
||
<span class="normal">14</span>
|
||
<span class="normal">15</span>
|
||
<span class="normal">16</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason_p</span>
|
||
<span class="p">(</span>
|
||
<span class="w"> </span><span class="n">r_reason_sk</span><span class="w"> </span><span class="nb">integer</span><span class="p">,</span>
|
||
<span class="w"> </span><span class="n">r_reason_id</span><span class="w"> </span><span class="nb">character</span><span class="p">(</span><span class="mi">16</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">r_reason_desc</span><span class="w"> </span><span class="nb">character</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span>
|
||
<span class="p">)</span>
|
||
<span class="n">PARTITION</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">RANGE</span><span class="w"> </span><span class="p">(</span><span class="n">r_reason_sk</span><span class="p">)</span>
|
||
<span class="p">(</span>
|
||
<span class="w"> </span><span class="n">partition</span><span class="w"> </span><span class="n">P_05_BEFORE</span><span class="w"> </span><span class="k">values</span><span class="w"> </span><span class="k">less</span><span class="w"> </span><span class="k">than</span><span class="w"> </span><span class="p">(</span><span class="mi">05</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">partition</span><span class="w"> </span><span class="n">P_15</span><span class="w"> </span><span class="k">values</span><span class="w"> </span><span class="k">less</span><span class="w"> </span><span class="k">than</span><span class="w"> </span><span class="p">(</span><span class="mi">15</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">partition</span><span class="w"> </span><span class="n">P_25</span><span class="w"> </span><span class="k">values</span><span class="w"> </span><span class="k">less</span><span class="w"> </span><span class="k">than</span><span class="w"> </span><span class="p">(</span><span class="mi">25</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">partition</span><span class="w"> </span><span class="n">P_35</span><span class="w"> </span><span class="k">values</span><span class="w"> </span><span class="k">less</span><span class="w"> </span><span class="k">than</span><span class="w"> </span><span class="p">(</span><span class="mi">35</span><span class="p">),</span>
|
||
<span class="w"> </span><span class="n">partition</span><span class="w"> </span><span class="n">P_45_AFTER</span><span class="w"> </span><span class="k">values</span><span class="w"> </span><span class="k">less</span><span class="w"> </span><span class="k">than</span><span class="w"> </span><span class="p">(</span><span class="k">MAXVALUE</span><span class="p">)</span>
|
||
<span class="p">);</span>
|
||
|
||
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason_p</span><span class="w"> </span><span class="k">values</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="s1">'AAAAAAAABAAAAAAA'</span><span class="p">,</span><span class="s1">'reason 1'</span><span class="p">),(</span><span class="mi">10</span><span class="p">,</span><span class="s1">'AAAAAAAABAAAAAAA'</span><span class="p">,</span><span class="s1">'reason 2'</span><span class="p">),(</span><span class="mi">4</span><span class="p">,</span><span class="s1">'AAAAAAAABAAAAAAA'</span><span class="p">,</span><span class="s1">'reason 3'</span><span class="p">),(</span><span class="mi">10</span><span class="p">,</span><span class="s1">'AAAAAAAABAAAAAAA'</span><span class="p">,</span><span class="s1">'reason 4'</span><span class="p">),(</span><span class="mi">10</span><span class="p">,</span><span class="s1">'AAAAAAAABAAAAAAA'</span><span class="p">,</span><span class="s1">'reason 5'</span><span class="p">),(</span><span class="mi">20</span><span class="p">,</span><span class="s1">'AAAAAAAACAAAAAAA'</span><span class="p">,</span><span class="s1">'reason 6'</span><span class="p">),(</span><span class="mi">30</span><span class="p">,</span><span class="s1">'AAAAAAAACAAAAAAA'</span><span class="p">,</span><span class="s1">'reason 7'</span><span class="p">);</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p173275231183">Query a specified partition:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen320212581917"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason_p</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="p">(</span><span class="n">P_05_BEFORE</span><span class="p">);</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p01541957141815">Query the number of rows in partition <strong id="EN-US_TOPIC_0000001188270504__b121298465470">P_15</strong>:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen6636115221818"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="k">count</span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason_p</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="p">(</span><span class="n">P_15</span><span class="p">);</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li></ul>
|
||
<ul id="EN-US_TOPIC_0000001188270504__ul171101519151"><li id="EN-US_TOPIC_0000001188270504__li20721915171512">Example of the <strong id="EN-US_TOPIC_0000001188270504__b97141448194119">HAVING</strong> clause<p id="EN-US_TOPIC_0000001188270504__p167134187158">Collect statistics on records in the <strong id="EN-US_TOPIC_0000001188270504__b09937211424"><span id="EN-US_TOPIC_0000001188270504__text634213156315">tpcds.</span>reason_p table</strong> by <strong id="EN-US_TOPIC_0000001188270504__b1860617364427">r_reason_id</strong> group and display only records of which the number of <strong id="EN-US_TOPIC_0000001188270504__b8103166134311">r_reason_id</strong> values is greater than 2.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen219793041515"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="k">COUNT</span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="k">c</span><span class="p">,</span><span class="n">r_reason_id</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason_p</span><span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">r_reason_id</span><span class="w"> </span><span class="k">HAVING</span><span class="w"> </span><span class="k">c</span><span class="o">></span><span class="mi">2</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__li86065503152">Example of the <strong id="EN-US_TOPIC_0000001188270504__b8304103818441">IN</strong> clause<p id="EN-US_TOPIC_0000001188270504__p595025618152">Collect statistics on the number of <strong id="EN-US_TOPIC_0000001188270504__b71179834511">r_reason_id</strong> values in the <strong id="EN-US_TOPIC_0000001188270504__b48491924104519"><span id="EN-US_TOPIC_0000001188270504__text15622912165">tpcds.</span>reason_p table</strong> by <strong id="EN-US_TOPIC_0000001188270504__b16238193574512">r_reason_id</strong> group and display only the number of records whose <strong id="EN-US_TOPIC_0000001188270504__b835614381466">r_reason_id</strong> values are <strong id="EN-US_TOPIC_0000001188270504__b52924242475">AAAAAAAABAAAAAAA</strong> or <strong id="EN-US_TOPIC_0000001188270504__b203798293478">AAAAAAAADAAAAAAA</strong>.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen53079812167"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="k">COUNT</span><span class="p">(</span><span class="o">*</span><span class="p">),</span><span class="n">r_reason_id</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason_p</span><span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">r_reason_id</span><span class="w"> </span><span class="k">HAVING</span><span class="w"> </span><span class="n">r_reason_id</span><span class="w"> </span><span class="k">IN</span><span class="p">(</span><span class="s1">'AAAAAAAABAAAAAAA'</span><span class="p">,</span><span class="s1">'AAAAAAAADAAAAAAA'</span><span class="p">);</span><span class="w"> </span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__li1255361110161">Example of the <strong id="EN-US_TOPIC_0000001188270504__b7232113018482">INTERSECT</strong> clause<p id="EN-US_TOPIC_0000001188270504__p577152114167">Query records whose <strong id="EN-US_TOPIC_0000001188270504__b148796764920">r_reason_id</strong> is <strong id="EN-US_TOPIC_0000001188270504__b53922123495">AAAAAAAABAAAAAAA</strong> and <strong id="EN-US_TOPIC_0000001188270504__b19341519144911">r_reason_sk</strong> is less than <strong id="EN-US_TOPIC_0000001188270504__b75618233494">5</strong>.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen78151434171618"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason_p</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">r_reason_id</span><span class="o">=</span><span class="s1">'AAAAAAAABAAAAAAA'</span><span class="w"> </span><span class="k">INTERSECT</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason_p</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">r_reason_sk</span><span class="o"><</span><span class="mi">5</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001188270504__li1562410499161">Example of the <strong id="EN-US_TOPIC_0000001188270504__b654317428497">EXCEPT</strong> clause<p id="EN-US_TOPIC_0000001188270504__p1595185312163">Query records whose <strong id="EN-US_TOPIC_0000001188270504__b1476275210497">r_reason_id</strong> is <strong id="EN-US_TOPIC_0000001188270504__b15516515020">AAAAAAAABAAAAAAA</strong> and except the records whose <strong id="EN-US_TOPIC_0000001188270504__b83403487508">r_reason_sk</strong> is less than <strong id="EN-US_TOPIC_0000001188270504__b6524752115015">4</strong>.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen819771521717"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason_p</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">r_reason_id</span><span class="o">=</span><span class="s1">'AAAAAAAABAAAAAAA'</span><span class="w"> </span><span class="k">EXCEPT</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tpcds</span><span class="p">.</span><span class="n">reason_p</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">r_reason_sk</span><span class="o"><</span><span class="mi">4</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li></ul>
|
||
<ul id="EN-US_TOPIC_0000001188270504__ul1362815500911"><li id="EN-US_TOPIC_0000001188270504__li1862813500919">Example of the <strong id="EN-US_TOPIC_0000001188270504__b98801425117">WHERE</strong> clause<p id="EN-US_TOPIC_0000001188270504__p4769104015103">Specify the operator (+) in the <strong id="EN-US_TOPIC_0000001188270504__b50945194105948">WHERE</strong> clause to indicate a left join.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen3945115631015"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||
<span class="normal"> 2</span>
|
||
<span class="normal"> 3</span>
|
||
<span class="normal"> 4</span>
|
||
<span class="normal"> 5</span>
|
||
<span class="normal"> 6</span>
|
||
<span class="normal"> 7</span>
|
||
<span class="normal"> 8</span>
|
||
<span class="normal"> 9</span>
|
||
<span class="normal">10</span>
|
||
<span class="normal">11</span>
|
||
<span class="normal">12</span>
|
||
<span class="normal">13</span>
|
||
<span class="normal">14</span>
|
||
<span class="normal">15</span>
|
||
<span class="normal">16</span>
|
||
<span class="normal">17</span>
|
||
<span class="normal">18</span>
|
||
<span class="normal">19</span>
|
||
<span class="normal">20</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">DROP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="n">store_returns</span><span class="p">;</span>
|
||
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">store_returns</span>
|
||
<span class="p">(</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="n">sr_item_sk</span><span class="w"> </span><span class="nb">BIGINT</span><span class="w"> </span><span class="p">,</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="n">sr_customer_sk</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">25</span><span class="p">)</span><span class="w"> </span>
|
||
<span class="p">);</span>
|
||
|
||
<span class="k">DROP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="n">customer</span><span class="p">;</span>
|
||
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">customer</span>
|
||
<span class="p">(</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="n">C_CUSTKEY</span><span class="w"> </span><span class="nb">BIGINT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">CONSTRAINT</span><span class="w"> </span><span class="n">C_CUSTKEY_pk</span><span class="w"> </span><span class="k">PRIMARY</span><span class="w"> </span><span class="k">KEY</span><span class="w"> </span><span class="p">,</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="n">C_NAME</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">25</span><span class="p">)</span><span class="w"> </span><span class="p">,</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="n">C_CUSTOMER_SK</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">25</span><span class="p">)</span><span class="w"> </span><span class="p">,</span>
|
||
<span class="w"> </span><span class="n">C_CUSTOMER_ID</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"> </span><span class="p">,</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="n">C_NATIONKEY</span><span class="w"> </span><span class="nb">INT</span><span class="w"> </span><span class="p">,</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="n">C_PHONE</span><span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="mi">15</span><span class="p">)</span><span class="w"> </span><span class="p">,</span><span class="w"> </span>
|
||
<span class="w"> </span><span class="n">C_ACCTBAL</span><span class="w"> </span><span class="nb">DECIMAL</span><span class="p">(</span><span class="mi">15</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span>
|
||
<span class="p">);</span>
|
||
|
||
<span class="k">SELECT</span><span class="w"> </span><span class="n">t1</span><span class="p">.</span><span class="n">sr_item_sk</span><span class="w"> </span><span class="p">,</span><span class="n">t2</span><span class="p">.</span><span class="n">c_customer_id</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">store_returns</span><span class="w"> </span><span class="n">t1</span><span class="p">,</span><span class="w"> </span><span class="n">customer</span><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">t1</span><span class="p">.</span><span class="n">sr_customer_sk</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">t2</span><span class="p">.</span><span class="n">c_customer_sk</span><span class="p">(</span><span class="o">+</span><span class="p">)</span><span class="w"> </span><span class="k">order</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">desc</span><span class="w"> </span><span class="k">limit</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p2027225116">Specify the operator (+) in the <strong id="EN-US_TOPIC_0000001188270504__b1278261013105948">WHERE</strong> clause to indicate a right join.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen7520191681114"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">t1</span><span class="p">.</span><span class="n">sr_item_sk</span><span class="w"> </span><span class="p">,</span><span class="n">t2</span><span class="p">.</span><span class="n">c_customer_id</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">store_returns</span><span class="w"> </span><span class="n">t1</span><span class="p">,</span><span class="w"> </span><span class="n">customer</span><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">t1</span><span class="p">.</span><span class="n">sr_customer_sk</span><span class="p">(</span><span class="o">+</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">t2</span><span class="p">.</span><span class="n">c_customer_sk</span><span class="w"> </span><span class="k">order</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">desc</span><span class="w"> </span><span class="k">limit</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p1577218463113">Specify the operator (+) in the <strong id="EN-US_TOPIC_0000001188270504__b2085243518105948">WHERE</strong> clause to indicate a left join and add a join condition.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen177659171119"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">t1</span><span class="p">.</span><span class="n">sr_item_sk</span><span class="w"> </span><span class="p">,</span><span class="n">t2</span><span class="p">.</span><span class="n">c_customer_id</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">store_returns</span><span class="w"> </span><span class="n">t1</span><span class="p">,</span><span class="w"> </span><span class="n">customer</span><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">t1</span><span class="p">.</span><span class="n">sr_customer_sk</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">t2</span><span class="p">.</span><span class="n">c_customer_sk</span><span class="p">(</span><span class="o">+</span><span class="p">)</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="n">t2</span><span class="p">.</span><span class="n">c_customer_sk</span><span class="p">(</span><span class="o">+</span><span class="p">)</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">order</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">limit</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p1913915397126">If the operator (+) is specified in the <strong id="EN-US_TOPIC_0000001188270504__b703984026105948">WHERE</strong> clause, do not use expressions connected through <strong id="EN-US_TOPIC_0000001188270504__b2113633409105948">AND</strong>/<strong id="EN-US_TOPIC_0000001188270504__b1174021015105948">OR</strong>.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen183201752111214"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||
<span class="normal">2</span>
|
||
<span class="normal">3</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">t1</span><span class="p">.</span><span class="n">sr_item_sk</span><span class="w"> </span><span class="p">,</span><span class="n">t2</span><span class="p">.</span><span class="n">c_customer_id</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">store_returns</span><span class="w"> </span><span class="n">t1</span><span class="p">,</span><span class="w"> </span><span class="n">customer</span><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="k">not</span><span class="p">(</span><span class="n">t1</span><span class="p">.</span><span class="n">sr_customer_sk</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">t2</span><span class="p">.</span><span class="n">c_customer_sk</span><span class="p">(</span><span class="o">+</span><span class="p">)</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="n">t2</span><span class="p">.</span><span class="n">c_customer_sk</span><span class="p">(</span><span class="o">+</span><span class="p">)</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span>
|
||
<span class="n">ERROR</span><span class="p">:</span><span class="w"> </span><span class="k">Operator</span><span class="w"> </span><span class="ss">"(+)"</span><span class="w"> </span><span class="n">can</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">used</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">nesting</span><span class="w"> </span><span class="n">expression</span><span class="p">.</span>
|
||
<span class="n">LINE</span><span class="w"> </span><span class="mi">1</span><span class="p">:</span><span class="w"> </span><span class="p">...</span><span class="n">tomer_id</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">store_returns</span><span class="w"> </span><span class="n">t1</span><span class="p">,</span><span class="w"> </span><span class="n">customer</span><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="k">not</span><span class="p">(</span><span class="n">t1</span><span class="p">.</span><span class="n">sr_</span><span class="p">...</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p20892142131313">If the operator (+) is specified in the WHERE clause which does not support expression macros, an error will be reported.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen11707121941310"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">t1</span><span class="p">.</span><span class="n">sr_item_sk</span><span class="w"> </span><span class="p">,</span><span class="n">t2</span><span class="p">.</span><span class="n">c_customer_id</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">store_returns</span><span class="w"> </span><span class="n">t1</span><span class="p">,</span><span class="w"> </span><span class="n">customer</span><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="p">(</span><span class="n">t1</span><span class="p">.</span><span class="n">sr_customer_sk</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">t2</span><span class="p">.</span><span class="n">c_customer_sk</span><span class="p">(</span><span class="o">+</span><span class="p">))::</span><span class="n">bool</span><span class="p">;</span>
|
||
<span class="n">ERROR</span><span class="p">:</span><span class="w"> </span><span class="k">Operator</span><span class="w"> </span><span class="ss">"(+)"</span><span class="w"> </span><span class="n">can</span><span class="w"> </span><span class="k">only</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">used</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">common</span><span class="w"> </span><span class="n">expression</span><span class="p">.</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001188270504__p177000661418">If the operator (+) is specified on both sides of an expression in the <strong id="EN-US_TOPIC_0000001188270504__b1402884392105948">WHERE</strong> clause, an error will be reported.</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270504__screen474872921417"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||
<span class="normal">2</span>
|
||
<span class="normal">3</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">t1</span><span class="p">.</span><span class="n">sr_item_sk</span><span class="w"> </span><span class="p">,</span><span class="n">t2</span><span class="p">.</span><span class="n">c_customer_id</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">store_returns</span><span class="w"> </span><span class="n">t1</span><span class="p">,</span><span class="w"> </span><span class="n">customer</span><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">t1</span><span class="p">.</span><span class="n">sr_customer_sk</span><span class="p">(</span><span class="o">+</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">t2</span><span class="p">.</span><span class="n">c_customer_sk</span><span class="p">(</span><span class="o">+</span><span class="p">);</span>
|
||
<span class="n">ERROR</span><span class="p">:</span><span class="w"> </span><span class="k">Operator</span><span class="w"> </span><span class="ss">"(+)"</span><span class="w"> </span><span class="n">can</span><span class="err">'</span><span class="n">t</span><span class="w"> </span><span class="n">be</span><span class="w"> </span><span class="n">specified</span><span class="w"> </span><span class="k">on</span><span class="w"> </span><span class="k">more</span><span class="w"> </span><span class="k">than</span><span class="w"> </span><span class="n">one</span><span class="w"> </span><span class="n">relation</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">one</span><span class="w"> </span><span class="k">join</span><span class="w"> </span><span class="n">condition</span>
|
||
<span class="n">HINT</span><span class="p">:</span><span class="w"> </span><span class="ss">"t1"</span><span class="p">,</span><span class="w"> </span><span class="ss">"t2"</span><span class="p">...</span><span class="k">are</span><span class="w"> </span><span class="n">specified</span><span class="w"> </span><span class="k">Operator</span><span class="w"> </span><span class="ss">"(+)"</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">one</span><span class="w"> </span><span class="n">condition</span><span class="p">.</span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li></ul>
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<div class="familylinks">
|
||
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0277.html">DQL Syntax</a></div>
|
||
</div>
|
||
</div>
|
||
|