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>
253 lines
38 KiB
HTML
253 lines
38 KiB
HTML
<a name="EN-US_TOPIC_0000001188270500"></a><a name="EN-US_TOPIC_0000001188270500"></a>
|
|
|
|
<h1 class="topictitle1">Conditional Expressions</h1>
|
|
<div id="body8662426"><p id="EN-US_TOPIC_0000001188270500__a0f876f9bea274bec808ae3f8dc281a60">Data that meets the requirements specified by conditional expressions are filtered during SQL statement execution.</p>
|
|
<p id="EN-US_TOPIC_0000001188270500__a5eca7c2f2bf3441cafd7d867b17b4f27">Conditional expressions include the following types:</p>
|
|
<ul id="EN-US_TOPIC_0000001188270500__u2cea714a99ef4474a05ac8d277c55c19"><li id="EN-US_TOPIC_0000001188270500__led211cefbacc4f9e97cd244e287a84d7">CASE<p id="EN-US_TOPIC_0000001188270500__aa59d0d978c644bf48bec0f96bbf5c15f"><a name="EN-US_TOPIC_0000001188270500__led211cefbacc4f9e97cd244e287a84d7"></a><a name="led211cefbacc4f9e97cd244e287a84d7"></a><strong id="EN-US_TOPIC_0000001188270500__b4250182919517">CASE</strong> expressions are similar to the <strong id="EN-US_TOPIC_0000001188270500__b6255192955117">CASE</strong> statements in other coding languages.</p>
|
|
<p id="EN-US_TOPIC_0000001188270500__ab67e538ac06143f891cb3f49041464e7"><a href="#EN-US_TOPIC_0000001188270500__f01d218ade2304aa39904ab7270de148d">Figure 1</a> shows the syntax of a <strong id="EN-US_TOPIC_0000001188270500__b1390331125113">CASE</strong> expression.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001188270500__f01d218ade2304aa39904ab7270de148d"><a name="EN-US_TOPIC_0000001188270500__f01d218ade2304aa39904ab7270de148d"></a><a name="f01d218ade2304aa39904ab7270de148d"></a><span class="figcap"><b>Figure 1 </b>case::=</span><br><span><img id="EN-US_TOPIC_0000001188270500__ica40f54403a5420ab2edadc3e307b833" src="figure/en-us_image_0000001233708715.jpg"></span></div>
|
|
<p id="EN-US_TOPIC_0000001188270500__ae9a1863646864b3694e5e33177c87bf7">A <strong id="EN-US_TOPIC_0000001188270500__b842352706104757">CASE</strong> clause can be used in a valid expression. <strong id="EN-US_TOPIC_0000001188270500__b84235270611329">condition</strong> is an expression that returns a value of Boolean type.</p>
|
|
<ul id="EN-US_TOPIC_0000001188270500__u2c76c7b4871e44b08902417375579821"><li id="EN-US_TOPIC_0000001188270500__l70a25f439dff4f2f90c070bd79f579df">If the result is <strong id="EN-US_TOPIC_0000001188270500__b84235270611336">true</strong>, the result of the <strong id="EN-US_TOPIC_0000001188270500__b842352706113239">CASE</strong> expression is the required result.</li><li id="EN-US_TOPIC_0000001188270500__l51bcff071b8c4047a703ff3fe52538e2">If the result is false, the following <strong id="EN-US_TOPIC_0000001188270500__b12916447154916">WHEN</strong> or <strong id="EN-US_TOPIC_0000001188270500__b84235270694712">ELSE</strong> clauses are processed in the same way.</li><li id="EN-US_TOPIC_0000001188270500__lfbfbf504ed5844f3bc614b6168835896">If every <strong id="EN-US_TOPIC_0000001188270500__b0920200165014">WHEN condition</strong> is false, the result of the expression is the result of the <strong id="EN-US_TOPIC_0000001188270500__b4921120155011">ELSE</strong> clause. If the <strong id="EN-US_TOPIC_0000001188270500__b8423527061023">ELSE</strong> clause is omitted and has no match condition, the result is NULL.</li></ul>
|
|
<p id="EN-US_TOPIC_0000001188270500__a9dddd557b5b34a93b1658bf41a82a9cc">Examples:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270500__s9a0b59931d684c19b80ca0c5bcd25140"><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></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">case_when_t1</span><span class="p">(</span><span class="n">CW_COL1</span><span class="w"> </span><span class="nb">INT</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">HASH</span><span class="w"> </span><span class="p">(</span><span class="n">CW_COL1</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">case_when_t1</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="p">(</span><span class="mi">2</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">3</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">tpcds</span><span class="p">.</span><span class="n">case_when_t1</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">cw_col1</span>
|
|
<span class="c1">---------</span>
|
|
<span class="w"> </span><span class="mi">3</span>
|
|
<span class="w"> </span><span class="mi">1</span>
|
|
<span class="w"> </span><span class="mi">2</span>
|
|
<span class="p">(</span><span class="mi">3</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="n">CW_COL1</span><span class="p">,</span><span class="w"> </span><span class="k">CASE</span><span class="w"> </span><span class="k">WHEN</span><span class="w"> </span><span class="n">CW_COL1</span><span class="o">=</span><span class="mi">1</span><span class="w"> </span><span class="k">THEN</span><span class="w"> </span><span class="s1">'one'</span><span class="w"> </span><span class="k">WHEN</span><span class="w"> </span><span class="n">CW_COL1</span><span class="o">=</span><span class="mi">2</span><span class="w"> </span><span class="k">THEN</span><span class="w"> </span><span class="s1">'two'</span><span class="w"> </span><span class="k">ELSE</span><span class="w"> </span><span class="s1">'other'</span><span class="w"> </span><span class="k">END</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">case_when_t1</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">cw_col1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">case</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">other</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">one</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">two</span>
|
|
<span class="p">(</span><span class="mi">3</span><span class="w"> </span><span class="k">rows</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="n">tpcds</span><span class="p">.</span><span class="n">case_when_t1</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li><li id="EN-US_TOPIC_0000001188270500__ldc2e2c1181974a0c8b09e9fbf1cb90b1">DECODE<p id="EN-US_TOPIC_0000001188270500__a6f8da2b35d804a219fb63c6acbd4a1fc"><a name="EN-US_TOPIC_0000001188270500__ldc2e2c1181974a0c8b09e9fbf1cb90b1"></a><a name="ldc2e2c1181974a0c8b09e9fbf1cb90b1"></a><a href="#EN-US_TOPIC_0000001188270500__fd14d2a98b6614a1990d3a7745dd91b21">Figure 2</a> shows the syntax of a <strong id="EN-US_TOPIC_0000001188270500__b196043945112">DECODE</strong> expression.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001188270500__fd14d2a98b6614a1990d3a7745dd91b21"><a name="EN-US_TOPIC_0000001188270500__fd14d2a98b6614a1990d3a7745dd91b21"></a><a name="fd14d2a98b6614a1990d3a7745dd91b21"></a><span class="figcap"><b>Figure 2 </b>decode::=</span><br><span><img id="EN-US_TOPIC_0000001188270500__i4c5e9873a48144c294fcad1708cfc4d4" src="figure/en-us_image_0000001188589034.png"></span></div>
|
|
<p id="EN-US_TOPIC_0000001188270500__a9009bfa45245458d9c9a13d463a6d66a">Compare each following <strong id="EN-US_TOPIC_0000001188270500__b19486154411417">compare(n)</strong> with <strong id="EN-US_TOPIC_0000001188270500__b19486134412414">base_expr</strong>, <strong id="EN-US_TOPIC_0000001188270500__b19486844644">value(n)</strong> is returned if a <strong id="EN-US_TOPIC_0000001188270500__b5486144420413">compare(n)</strong> matches the <strong id="EN-US_TOPIC_0000001188270500__b1148713446412">base_expr</strong> expression. If base_expr does not match each <strong id="EN-US_TOPIC_0000001188270500__b84235270611366">compare(n)</strong>, the default value is returned.</p>
|
|
<p id="EN-US_TOPIC_0000001188270500__a69ac06fb74a34faea8639f884ac0d9ba"><a href="dws_06_0050.html">Conditional Expression Functions</a> describes the examples.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270500__s1748df4707cc47fea3cf3230b567d67f"><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="n">DECODE</span><span class="p">(</span><span class="s1">'A'</span><span class="p">,</span><span class="s1">'A'</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="s1">'B'</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="k">case</span><span class="w"> </span>
|
|
<span class="c1">------</span>
|
|
<span class="w"> </span><span class="mi">1</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_0000001188270500__l84e0e13843cb4015980223e39a7c7d47">COALESCE<p id="EN-US_TOPIC_0000001188270500__aff2e321fdbd24061830aa4f53ac809a1"><a name="EN-US_TOPIC_0000001188270500__l84e0e13843cb4015980223e39a7c7d47"></a><a name="l84e0e13843cb4015980223e39a7c7d47"></a><a href="#EN-US_TOPIC_0000001188270500__f49993c20aa1746a1bcd8dc6fc33f1129">Figure 3</a> shows the syntax of a <strong id="EN-US_TOPIC_0000001188270500__b2105346195111">COALESCE</strong> expression.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001188270500__f49993c20aa1746a1bcd8dc6fc33f1129"><a name="EN-US_TOPIC_0000001188270500__f49993c20aa1746a1bcd8dc6fc33f1129"></a><a name="f49993c20aa1746a1bcd8dc6fc33f1129"></a><span class="figcap"><b>Figure 3 </b>coalesce::=</span><br><span><img id="EN-US_TOPIC_0000001188270500__i1df7f04570d54dafbf65ec04f1ed6b31" src="figure/en-us_image_0000001188270566.png"></span></div>
|
|
<p id="EN-US_TOPIC_0000001188270500__ad205b75c5746422da64e93ea3b91b23d"><strong id="EN-US_TOPIC_0000001188270500__b842352706113655">COALESCE</strong> returns its first non-NULL value. If all the arguments are NULL, return <strong id="EN-US_TOPIC_0000001188270500__b84235270614536">NULL</strong>. This value is replaced by the default value when data is displayed. Like a <strong id="EN-US_TOPIC_0000001188270500__b842352706113716">CASE</strong> expression, <strong id="EN-US_TOPIC_0000001188270500__b842352706113717">COALESCE</strong> only evaluates the parameters that are needed to determine the result. That is, parameters to the right of the first non-null parameter are not evaluated.</p>
|
|
<p id="EN-US_TOPIC_0000001188270500__a84b935c49ed947a1984323c042a367ca">Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270500__s4086b4242684429c8cdc16b6a3ae837c"><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></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">c_tabl</span><span class="p">(</span><span class="n">description</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="n">short_description</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="n">last_value</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="n">DISTRIBUTE</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">HASH</span><span class="w"> </span><span class="p">(</span><span class="n">last_value</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">c_tabl</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'abc'</span><span class="p">,</span><span class="w"> </span><span class="s1">'efg'</span><span class="p">,</span><span class="w"> </span><span class="s1">'123'</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">c_tabl</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="k">NULL</span><span class="p">,</span><span class="w"> </span><span class="s1">'efg'</span><span class="p">,</span><span class="w"> </span><span class="s1">'123'</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">c_tabl</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="k">NULL</span><span class="p">,</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span><span class="w"> </span><span class="s1">'123'</span><span class="p">);</span>
|
|
|
|
<span class="k">SELECT</span><span class="w"> </span><span class="n">description</span><span class="p">,</span><span class="w"> </span><span class="n">short_description</span><span class="p">,</span><span class="w"> </span><span class="n">last_value</span><span class="p">,</span><span class="w"> </span><span class="k">COALESCE</span><span class="p">(</span><span class="n">description</span><span class="p">,</span><span class="w"> </span><span class="n">short_description</span><span class="p">,</span><span class="w"> </span><span class="n">last_value</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">c_tabl</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="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">description</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">short_description</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">last_value</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">coalesce</span>
|
|
<span class="c1">-------------+-------------------+------------+----------</span>
|
|
<span class="w"> </span><span class="n">abc</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">efg</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">123</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">abc</span>
|
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">efg</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">123</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">efg</span>
|
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">123</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">123</span>
|
|
<span class="p">(</span><span class="mi">3</span><span class="w"> </span><span class="k">rows</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="n">tpcds</span><span class="p">.</span><span class="n">c_tabl</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001188270500__a520475585c794ad5b453c6686c3a8e6b">If <strong id="EN-US_TOPIC_0000001188270500__b84235270694840">description</strong> is not <strong id="EN-US_TOPIC_0000001188270500__b84235270694846">NULL</strong>, the value of <strong id="EN-US_TOPIC_0000001188270500__b84235270694913">description</strong> is returned. Otherwise, parameter <strong id="EN-US_TOPIC_0000001188270500__b84235270695034">short_description</strong> is calculated. If <strong id="EN-US_TOPIC_0000001188270500__b84235270695058">short_description</strong> is not <strong id="EN-US_TOPIC_0000001188270500__b8423527069517">NULL</strong>, the value of <strong id="EN-US_TOPIC_0000001188270500__b84235270695238">short_description</strong> is returned. Otherwise, parameter <strong id="EN-US_TOPIC_0000001188270500__b84235270695726">last_value</strong> is calculated. If <strong id="EN-US_TOPIC_0000001188270500__b8423527069581">last_value</strong> is not <strong id="EN-US_TOPIC_0000001188270500__b8423527069587">NULL</strong>, the value of <strong id="EN-US_TOPIC_0000001188270500__b84235270695824">last_value</strong> is returned. Otherwise, <strong id="EN-US_TOPIC_0000001188270500__b84235270695840">none</strong> is returned.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270500__s2b155e787cd44bfc8879b0fca292578e"><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="k">COALESCE</span><span class="p">(</span><span class="k">NULL</span><span class="p">,</span><span class="s1">'Hello World'</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="k">coalesce</span><span class="w"> </span>
|
|
<span class="c1">---------------</span>
|
|
<span class="w"> </span><span class="n">Hello</span><span class="w"> </span><span class="n">World</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_0000001188270500__l919966ae124a4fc99bd9ef4fc6c1f555">NULLIF<p id="EN-US_TOPIC_0000001188270500__a49475243b9dd4d8cbab30bd43fbb2439"><a name="EN-US_TOPIC_0000001188270500__l919966ae124a4fc99bd9ef4fc6c1f555"></a><a name="l919966ae124a4fc99bd9ef4fc6c1f555"></a><a href="#EN-US_TOPIC_0000001188270500__f08785065f90f4fcf836fcc8d88b56686">Figure 4</a> shows the syntax of a <strong id="EN-US_TOPIC_0000001188270500__b8273454135119">NULLIF</strong> expression.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001188270500__f08785065f90f4fcf836fcc8d88b56686"><a name="EN-US_TOPIC_0000001188270500__f08785065f90f4fcf836fcc8d88b56686"></a><a name="f08785065f90f4fcf836fcc8d88b56686"></a><span class="figcap"><b>Figure 4 </b>nullif::=</span><br><span><img id="EN-US_TOPIC_0000001188270500__i92de3e9f7b2e49c2bc68328248b740d9" src="figure/en-us_image_0000001188429118.png"></span></div>
|
|
<p id="EN-US_TOPIC_0000001188270500__ad5ed32583e14476c8d73907911642b83">Only if <strong id="EN-US_TOPIC_0000001188270500__b8423527069392">value1</strong> is equal to <strong id="EN-US_TOPIC_0000001188270500__b84235270693920">value2</strong> can <strong id="EN-US_TOPIC_0000001188270500__b84235270619205">NULLIF</strong> return the <strong id="EN-US_TOPIC_0000001188270500__b84235270693938">NULL</strong> value. Otherwise, <strong id="EN-US_TOPIC_0000001188270500__b84235270694019">value1</strong> is returned.</p>
|
|
<p id="EN-US_TOPIC_0000001188270500__a16f52c0520614e939f1f7a10a9a15c0f">Examples</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270500__s5f5e71e754534e78b49c96146f7191d6"><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">null_if_t1</span><span class="w"> </span><span class="p">(</span>
|
|
<span class="w"> </span><span class="n">NI_VALUE1</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="n">NI_VALUE2</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="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">HASH</span><span class="w"> </span><span class="p">(</span><span class="n">NI_VALUE1</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">null_if_t1</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'abc'</span><span class="p">,</span><span class="w"> </span><span class="s1">'abc'</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">null_if_t1</span><span class="w"> </span><span class="k">VALUES</span><span class="p">(</span><span class="s1">'abc'</span><span class="p">,</span><span class="w"> </span><span class="s1">'efg'</span><span class="p">);</span>
|
|
|
|
<span class="k">SELECT</span><span class="w"> </span><span class="n">NI_VALUE1</span><span class="p">,</span><span class="w"> </span><span class="n">NI_VALUE2</span><span class="p">,</span><span class="w"> </span><span class="k">NULLIF</span><span class="p">(</span><span class="n">NI_VALUE1</span><span class="p">,</span><span class="w"> </span><span class="n">NI_VALUE2</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">null_if_t1</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="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span>
|
|
|
|
<span class="w"> </span><span class="n">ni_value1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">ni_value2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">nullif</span><span class="w"> </span>
|
|
<span class="c1">-----------+-----------+--------</span>
|
|
<span class="w"> </span><span class="n">abc</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">abc</span><span class="w"> </span><span class="o">|</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="n">abc</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">efg</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">abc</span>
|
|
<span class="p">(</span><span class="mi">2</span><span class="w"> </span><span class="k">rows</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="n">tpcds</span><span class="p">.</span><span class="n">null_if_t1</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001188270500__ad5becb7262de48949ec4b2c3a0898acb">If <strong id="EN-US_TOPIC_0000001188270500__b84235270694033">value1</strong> is equal to <strong id="EN-US_TOPIC_0000001188270500__b84235270694043">value2</strong>, <strong id="EN-US_TOPIC_0000001188270500__b2005243896112440">NULL</strong> is returned. Otherwise, <strong id="EN-US_TOPIC_0000001188270500__b84235270694050">value1</strong> is returned.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270500__s97011ba26d1a426f98c5aaca10b52f3a"><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="k">NULLIF</span><span class="p">(</span><span class="s1">'Hello'</span><span class="p">,</span><span class="s1">'Hello World'</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="k">nullif</span><span class="w"> </span>
|
|
<span class="c1">--------</span>
|
|
<span class="w"> </span><span class="n">Hello</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_0000001188270500__l9a6f588d37a44eeaa79958cac230cd00">GREATEST (maximum value) and LEAST (minimum value)<p id="EN-US_TOPIC_0000001188270500__ab4b0fd5367ea48f79ffb80ff56da0bc2"><a name="EN-US_TOPIC_0000001188270500__l9a6f588d37a44eeaa79958cac230cd00"></a><a name="l9a6f588d37a44eeaa79958cac230cd00"></a><a href="#EN-US_TOPIC_0000001188270500__f7837163f04e147fdbf313fc02759293e">Figure 5</a> shows the syntax of a <strong id="EN-US_TOPIC_0000001188270500__b712115215212">GREATEST</strong> expression.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001188270500__f7837163f04e147fdbf313fc02759293e"><a name="EN-US_TOPIC_0000001188270500__f7837163f04e147fdbf313fc02759293e"></a><a name="f7837163f04e147fdbf313fc02759293e"></a><span class="figcap"><b>Figure 5 </b>greatest::=</span><br><span><img id="EN-US_TOPIC_0000001188270500__ia393570e45d0453bb945d753ee7e7159" src="figure/en-us_image_0000001233708717.png"></span></div>
|
|
<p id="EN-US_TOPIC_0000001188270500__aa6b4956052204819a327e62631920fa6">You can select the maximum value from any numerical expression list.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270500__s48fa7ca770014726b386d5aa627b5b20"><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="n">greatest</span><span class="p">(</span><span class="mi">9000</span><span class="p">,</span><span class="mi">155555</span><span class="p">,</span><span class="mi">2</span><span class="p">.</span><span class="mi">01</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">greatest</span><span class="w"> </span>
|
|
<span class="c1">----------</span>
|
|
<span class="w"> </span><span class="mi">155555</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_0000001188270500__a9f7cfe96605841dd9703c5dff3028e20"><a href="#EN-US_TOPIC_0000001188270500__f7c82b3fb53a74e5b928072c3e971408a">Figure 6</a> shows the syntax of a <strong id="EN-US_TOPIC_0000001188270500__b1756317114535">LEAST</strong> expression.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001188270500__f7c82b3fb53a74e5b928072c3e971408a"><a name="EN-US_TOPIC_0000001188270500__f7c82b3fb53a74e5b928072c3e971408a"></a><a name="f7c82b3fb53a74e5b928072c3e971408a"></a><span class="figcap"><b>Figure 6 </b>least::=</span><br><span><img id="EN-US_TOPIC_0000001188270500__idc5160d4d9314e17b6ebff7652abd973" src="figure/en-us_image_0000001233510153.png"></span></div>
|
|
<p id="EN-US_TOPIC_0000001188270500__a1700fb041885483cb11bd05172a453c4">You can select the minimum value from any numerical expression list.</p>
|
|
<p id="EN-US_TOPIC_0000001188270500__aa87ae3cd969343f2a49f77a4dd2b9216">Each of the preceding numeric expressions can be converted into a common data type, which will be the data type of the result.</p>
|
|
<p id="EN-US_TOPIC_0000001188270500__a1c615034f59a4be89717ec9a9b09169a">The NULL values in the list will be ignored. The result is <strong id="EN-US_TOPIC_0000001188270500__b2069667606112440">NULL</strong> only if the results of all expressions are <strong id="EN-US_TOPIC_0000001188270500__b1792907794112440">NULL</strong>.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270500__sd83f48dcb2e84602a4cc5370cce3cefc"><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="n">least</span><span class="p">(</span><span class="mi">9000</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">least</span><span class="w"> </span>
|
|
<span class="c1">-------</span>
|
|
<span class="w"> </span><span class="mi">2</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_0000001188270500__a7b591bd026ba4805b12fb7019a42f38b"><a href="dws_06_0050.html">Conditional Expression Functions</a> describes the examples.</p>
|
|
</li><li id="EN-US_TOPIC_0000001188270500__lcd79f914ae894636867848ced69c90c1">NVL<p id="EN-US_TOPIC_0000001188270500__ab517abfa8ed84b5981c876b5aaf64928"><a name="EN-US_TOPIC_0000001188270500__lcd79f914ae894636867848ced69c90c1"></a><a name="lcd79f914ae894636867848ced69c90c1"></a><a href="#EN-US_TOPIC_0000001188270500__f94614e31e7e046d7842d729dbd442f86">Figure 7</a> shows the syntax of an <strong id="EN-US_TOPIC_0000001188270500__b1315448165316">NVL</strong> expression.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001188270500__f94614e31e7e046d7842d729dbd442f86"><a name="EN-US_TOPIC_0000001188270500__f94614e31e7e046d7842d729dbd442f86"></a><a name="f94614e31e7e046d7842d729dbd442f86"></a><span class="figcap"><b>Figure 7 </b>nvl::=</span><br><span><img id="EN-US_TOPIC_0000001188270500__ic0fcb68e0aec45a390df35076853eaea" src="figure/en-us_image_0000001233430209.jpg"></span></div>
|
|
<p id="EN-US_TOPIC_0000001188270500__ae833592c00624a65b9dba31efe59d08f">If the value of <strong id="EN-US_TOPIC_0000001188270500__b84235270695148">value1</strong> is <strong id="EN-US_TOPIC_0000001188270500__b84235270695158">NULL</strong>, <strong id="EN-US_TOPIC_0000001188270500__b8423527069525">value2</strong> is returned. Otherwise, <strong id="EN-US_TOPIC_0000001188270500__b8822872195224">value1</strong> is returned.</p>
|
|
<p id="EN-US_TOPIC_0000001188270500__a7be5a0bf71214a778ab164d5ff476008">For example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188270500__sfa18b4a1327547c1816cc69cc3f1ade2"><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="n">nvl</span><span class="p">(</span><span class="k">null</span><span class="p">,</span><span class="mi">1</span><span class="p">);</span>
|
|
<span class="n">nvl</span><span class="w"> </span>
|
|
<span class="c1">-----</span>
|
|
<span class="w"> </span><span class="mi">1</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_0000001188270500__s43e0005b690c482c813bc2dec3345ffe"><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="n">nvl</span><span class="w"> </span><span class="p">(</span><span class="s1">'Hello World'</span><span class="w"> </span><span class="p">,</span><span class="mi">1</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">nvl</span><span class="w"> </span>
|
|
<span class="c1">---------------</span>
|
|
<span class="w"> </span><span class="n">Hello</span><span class="w"> </span><span class="n">World</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_0000001188270500__li4797241004">IF<p id="EN-US_TOPIC_0000001188270500__p107971641504"><a name="EN-US_TOPIC_0000001188270500__li4797241004"></a><a name="li4797241004"></a><a href="#EN-US_TOPIC_0000001188270500__fig591124561511">Figure 8</a> shows the syntax of an <strong id="EN-US_TOPIC_0000001188270500__b731187121314">IF</strong> expression.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001188270500__fig591124561511"><a name="EN-US_TOPIC_0000001188270500__fig591124561511"></a><a name="fig591124561511"></a><span class="figcap"><b>Figure 8 </b>if::=</span><br><span><img id="EN-US_TOPIC_0000001188270500__image3912164513152" src="figure/en-us_image_0000001233628639.png"></span></div>
|
|
<p id="EN-US_TOPIC_0000001188270500__p179711420015">If the value of <strong id="EN-US_TOPIC_0000001188270500__b773554781510">bool_expr</strong> is <strong id="EN-US_TOPIC_0000001188270500__b1174184918159">true</strong>, <strong id="EN-US_TOPIC_0000001188270500__b16687751131510">expr1</strong> is returned. Otherwise, <strong id="EN-US_TOPIC_0000001188270500__b162545421618">expr2</strong> is returned.</p>
|
|
<p id="EN-US_TOPIC_0000001188270500__p2079714905"><a href="dws_06_0050.html">Conditional Expression Functions</a> describes the examples.</p>
|
|
</li><li id="EN-US_TOPIC_0000001188270500__li350189009">IFNULL<p id="EN-US_TOPIC_0000001188270500__p550189204"><a name="EN-US_TOPIC_0000001188270500__li350189009"></a><a name="li350189009"></a><a href="#EN-US_TOPIC_0000001188270500__fig294554533118">Figure 9</a> shows the syntax of a <strong id="EN-US_TOPIC_0000001188270500__b1072617549168">NULLIF</strong> expression.</p>
|
|
<div class="fignone" id="EN-US_TOPIC_0000001188270500__fig294554533118"><a name="EN-US_TOPIC_0000001188270500__fig294554533118"></a><a name="fig294554533118"></a><span class="figcap"><b>Figure 9 </b>ifnull::=</span><br><span><img id="EN-US_TOPIC_0000001188270500__image19945145193120" src="figure/en-us_image_0000001188110592.png"></span></div>
|
|
<p id="EN-US_TOPIC_0000001188270500__p18501169202">Only if <strong id="EN-US_TOPIC_0000001188270500__b438761978">value1</strong> is equal to <strong id="EN-US_TOPIC_0000001188270500__b1486469779">value2</strong> can <strong id="EN-US_TOPIC_0000001188270500__b1119140639">NULLIF</strong> return the <strong id="EN-US_TOPIC_0000001188270500__b1216945827">NULL</strong> value. Otherwise, <strong id="EN-US_TOPIC_0000001188270500__b2025736466">value1</strong> is returned.</p>
|
|
<p id="EN-US_TOPIC_0000001188270500__p175013917017"><a href="dws_06_0050.html">Conditional Expression Functions</a> describes the examples.</p>
|
|
</li></ul>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0069.html">Expressions</a></div>
|
|
</div>
|
|
</div>
|
|
|