doc-exports/docs/dws/dev/dws_06_0073.html
Lu, Huayi e6fa411af0 DWS DEV 830.201 version
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>
2024-05-16 07:24:04 +00:00

95 lines
16 KiB
HTML

<a name="EN-US_TOPIC_0000001233708711"></a><a name="EN-US_TOPIC_0000001233708711"></a>
<h1 class="topictitle1">Array Expressions</h1>
<div id="body8662426"><div class="section" id="EN-US_TOPIC_0000001233708711__scb2ca86fd768432eb925469406084339"><h4 class="sectiontitle">IN</h4><p id="EN-US_TOPIC_0000001233708711__a8b5dd48662e24d79a8cfc907cec2017c"><em id="EN-US_TOPIC_0000001233708711__a07d2e2f5977248dd895fe01ba27c005e">expression </em><strong id="EN-US_TOPIC_0000001233708711__a4b08e2ff650f483591e9424fa720bba9">IN </strong><em id="EN-US_TOPIC_0000001233708711__a470a58ef9b0141ffb9899cd62c4f57c4">(value [, ...])</em></p>
<p id="EN-US_TOPIC_0000001233708711__a746b9b1331ee41bc93ee7ecee32d76a2">The parentheses on the right contain an expression list. The expression result on the left is compared with the content in the expression list. If the content in the list meets the expression result on the left, the result of <strong id="EN-US_TOPIC_0000001233708711__b1622143616143">IN</strong> is <strong id="EN-US_TOPIC_0000001233708711__b32218369144">true</strong>. If no result meets the requirements, the result of <strong id="EN-US_TOPIC_0000001233708711__b122310368140">IN</strong> is <strong id="EN-US_TOPIC_0000001233708711__b1623173614148">false</strong>.</p>
<p id="EN-US_TOPIC_0000001233708711__a0c03adacda974d46ba8acaa8ba703e91">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233708711__s2b96462640b64aadb41abb21e3addecb"><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">SELECT</span><span class="w"> </span><span class="mi">8000</span><span class="o">+</span><span class="mi">500</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="p">(</span><span class="mi">10000</span><span class="p">,</span><span class="w"> </span><span class="mi">9000</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span>
<span class="w"> </span><span class="k">result</span><span class="w"> </span>
<span class="c1">----------</span>
<span class="w"> </span><span class="n">f</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>
</div>
<div class="note" id="EN-US_TOPIC_0000001233708711__n459de528ad8e43aeaeb3e6f9b263961a"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001233708711__a940edaad8a6444c28d381d9901cb6c21">If the expression result is null or the expression list does not meet the expression conditions and at least one empty value is returned for the expression list on the right, the result of <strong id="EN-US_TOPIC_0000001233708711__b15231136191413">IN</strong> is <strong id="EN-US_TOPIC_0000001233708711__b18231365142">null</strong> rather than <strong id="EN-US_TOPIC_0000001233708711__b423163621415">false</strong>. This method is consistent with the Boolean rules used when SQL statements return empty values.</p>
</div></div>
<div class="section" id="EN-US_TOPIC_0000001233708711__s19d09be8106d4dc7a7d146f36c6d8612"><h4 class="sectiontitle">NOT IN</h4><p id="EN-US_TOPIC_0000001233708711__af2549154088d4d3f900a0cd60bf59fbe"><em id="EN-US_TOPIC_0000001233708711__aa757c238b8294f0cabebb90c63c0ae57">expression </em><strong id="EN-US_TOPIC_0000001233708711__a7690182a10e64b498277ac81be05ecde">NOT IN</strong><em id="EN-US_TOPIC_0000001233708711__a8ffcf36dd27c4a5faa191dc0c8447fb7"> (value [, ...])</em></p>
<p id="EN-US_TOPIC_0000001233708711__a59e7dbc2d442496eaee58000e7d5ca6b">The parentheses on the right contain an expression list. The expression result on the left is compared with the content in the expression list. If the content in the list does not meet the expression result on the left, the result of <strong id="EN-US_TOPIC_0000001233708711__b11246360146">NOT IN</strong> is <strong id="EN-US_TOPIC_0000001233708711__b172463611146">true</strong>. If any content meets the expression result, the result of <strong id="EN-US_TOPIC_0000001233708711__b16241436151410">NOT IN</strong> is <strong id="EN-US_TOPIC_0000001233708711__b1124193617140">false</strong>.</p>
<p id="EN-US_TOPIC_0000001233708711__ab56c37c447564aaaa9fe8c5f57e25d1c">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233708711__sa3e89d55353a4111adc7aa7089996ac6"><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">SELECT</span><span class="w"> </span><span class="mi">8000</span><span class="o">+</span><span class="mi">500</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="p">(</span><span class="mi">10000</span><span class="p">,</span><span class="w"> </span><span class="mi">9000</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span>
<span class="w"> </span><span class="k">result</span><span class="w"> </span>
<span class="c1">----------</span>
<span class="w"> </span><span class="n">t</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>
<div class="note" id="EN-US_TOPIC_0000001233708711__n042e529529f544ddac190eb864263847"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="EN-US_TOPIC_0000001233708711__ul2740101817577"><li id="EN-US_TOPIC_0000001233708711__li774041815570">If the query statement result is null or the expression list does not meet the expression conditions and at least one empty value is returned for the expression list on the right, the result of <strong id="EN-US_TOPIC_0000001233708711__b52510367146">NOT IN</strong> is <strong id="EN-US_TOPIC_0000001233708711__b17251536101410">null</strong> rather than <strong id="EN-US_TOPIC_0000001233708711__b142573617149">false</strong>. This method is consistent with the Boolean rules used when SQL statements return empty values.</li><li id="EN-US_TOPIC_0000001233708711__li17722531195713">In all situations, <strong id="EN-US_TOPIC_0000001233708711__b15360124219141">X NOT IN Y</strong> equals to <strong id="EN-US_TOPIC_0000001233708711__b036020427149">NOT(X IN Y)</strong>.</li></ul>
</div></div>
</div>
<div class="section" id="EN-US_TOPIC_0000001233708711__sea2a286c5d024285860a18056644ff53"><h4 class="sectiontitle">ANY/SOME (array)</h4><p id="EN-US_TOPIC_0000001233708711__a6cb85e7be8944422b2282cc60fcb26a3"><em id="EN-US_TOPIC_0000001233708711__a24f9a93ae13542ce9d9daec33e162343">expression operator </em><strong id="EN-US_TOPIC_0000001233708711__ad581beb8bb734c1495988f684d0a47e1">ANY </strong><em id="EN-US_TOPIC_0000001233708711__afaa74b8d97cf4f28a19bc62398f7b932">(array expression)</em></p>
<p id="EN-US_TOPIC_0000001233708711__a5398c1db17d04610a7087a409415b6df"><em id="EN-US_TOPIC_0000001233708711__a048c1e09a9294b65a45e9d59bb44e415">expression operator </em><strong id="EN-US_TOPIC_0000001233708711__aa96d210539684e7db9e4c327872aaec2">SOME </strong><em id="EN-US_TOPIC_0000001233708711__afff165b44c9946cfbad19f554d079842">(array expression)</em></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233708711__sa39e6f2cb1ba4739817a9ae7ce5b8308"><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">SELECT</span><span class="w"> </span><span class="mi">8000</span><span class="o">+</span><span class="mi">500</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="k">SOME</span><span class="w"> </span><span class="p">(</span><span class="nb">array</span><span class="p">[</span><span class="mi">10000</span><span class="p">,</span><span class="mi">9000</span><span class="p">])</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span>
<span class="w"> </span><span class="k">result</span><span class="w"> </span>
<span class="c1">----------</span>
<span class="w"> </span><span class="n">t</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>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233708711__s6d5c41e06a744945b9d598abb9c5816a"><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">SELECT</span><span class="w"> </span><span class="mi">8000</span><span class="o">+</span><span class="mi">500</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="k">ANY</span><span class="w"> </span><span class="p">(</span><span class="nb">array</span><span class="p">[</span><span class="mi">10000</span><span class="p">,</span><span class="mi">9000</span><span class="p">])</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span>
<span class="w"> </span><span class="k">result</span><span class="w"> </span>
<span class="c1">----------</span>
<span class="w"> </span><span class="n">t</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>
<p id="EN-US_TOPIC_0000001233708711__a8f6e6ddb9ba145a3911e8869e059ffb2">The parentheses on the right contain an array expression, which must generate an array value. The result of the expression on the left uses operators to compute and compare the results in each row of the array expression. The comparison result must be a Boolean value.</p>
<ul id="EN-US_TOPIC_0000001233708711__ud25f1daacf9741baa8c77e4f942eae68"><li id="EN-US_TOPIC_0000001233708711__l82a104e1be4b4d79adf3421a3abe6a36">If at least one comparison result is true, the result of <strong id="EN-US_TOPIC_0000001233708711__b8423527062008">ANY</strong> is <strong id="EN-US_TOPIC_0000001233708711__b8423527062007">true</strong>.</li><li id="EN-US_TOPIC_0000001233708711__l9dfaa8d64bbc42abb30f40a6c2ca2c79">If no comparison result is true, the result of ANY is false.</li></ul>
<div class="note" id="EN-US_TOPIC_0000001233708711__necdbbd8c4aaa4beca8d86bc9d18ff47a"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="EN-US_TOPIC_0000001233708711__ul259086185820"><li id="EN-US_TOPIC_0000001233708711__li25902069583">If no comparison result is true and the array expression generates at least one null value, the value of ANY is NULL, rather than false. This method is consistent with the Boolean rules used when SQL statements return empty values.</li><li id="EN-US_TOPIC_0000001233708711__li1459017618588"><strong id="EN-US_TOPIC_0000001233708711__b326836121420">SOME</strong> is a synonym of <strong id="EN-US_TOPIC_0000001233708711__b92603610144">ANY</strong>.</li></ul>
</div></div>
</div>
<div class="section" id="EN-US_TOPIC_0000001233708711__s3ea69820adbf46579db514e0ead3f881"><h4 class="sectiontitle">ALL (array)</h4><p id="EN-US_TOPIC_0000001233708711__a3e6eb44cb3fb4e1fb077a184676beaea"><em id="EN-US_TOPIC_0000001233708711__aa35f0de839cc4a57b0f4b8da552bf432">expression operator </em><strong id="EN-US_TOPIC_0000001233708711__ae385ce25131747bb89486a2dc8784ea9">ALL </strong><em id="EN-US_TOPIC_0000001233708711__a9b2d47cbe9e64e05983f44504ae14518">(array expression)</em></p>
<p id="EN-US_TOPIC_0000001233708711__a0909556f166743308efecdba5ed88e9c">The parentheses on the right contain an array expression, which must generate an array value. The result of the expression on the left uses operators to compute and compare the results in each row of the array expression. The comparison result must be a Boolean value.</p>
<ul id="EN-US_TOPIC_0000001233708711__ude19d390010b4813a5c898ba79805aef"><li id="EN-US_TOPIC_0000001233708711__lc156143cdc2f414b8a157269dbd936b7">The result of <strong id="EN-US_TOPIC_0000001233708711__en-us_topic_0058965692_b842352706144917">ALL</strong> is "true" if all comparisons yield <strong id="EN-US_TOPIC_0000001233708711__en-us_topic_0058965692_b842352706144920">true</strong> (including the case where the array has zero elements).</li><li id="EN-US_TOPIC_0000001233708711__l061da20a5a9847ec9036fe3b74f0c04f">The result is <strong id="EN-US_TOPIC_0000001233708711__b842352706175617">false</strong> if any false result is found.</li></ul>
<p id="EN-US_TOPIC_0000001233708711__ac9bb0e6f6974436dab7f6a397c45642a">If the array expression yields a null array, the result of <strong id="EN-US_TOPIC_0000001233708711__b842352706144945">ALL</strong> will be null. If the left-hand expression yields null, the result of <strong id="EN-US_TOPIC_0000001233708711__b84235270614500">ALL</strong> is ordinarily null (though a non-strict comparison operator could possibly yield a different result). Also, if the right-hand array contains any null elements and no false comparison result is obtained, the result of <strong id="EN-US_TOPIC_0000001233708711__b842352706145018">ALL</strong> will be null, not true (again, assuming a strict comparison operator). This method is consistent with the Boolean rules used when SQL statements return empty values.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001233708711__sfc466f0c0b044cdfbb1c99973631bffe"><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">SELECT</span><span class="w"> </span><span class="mi">8000</span><span class="o">+</span><span class="mi">500</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="k">ALL</span><span class="w"> </span><span class="p">(</span><span class="nb">array</span><span class="p">[</span><span class="mi">10000</span><span class="p">,</span><span class="mi">9000</span><span class="p">])</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span>
<span class="w"> </span><span class="k">result</span>
<span class="c1">----------</span>
<span class="w"> </span><span class="n">t</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>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0069.html">Expressions</a></div>
</div>
</div>