doc-exports/docs/dws/dev/dws_06_0050.html
Lu, Huayi a24ca60074 DWS DEVELOPER 811 version
Reviewed-by: Hasko, Vladimir <vladimir.hasko@t-systems.com>
Co-authored-by: Lu, Huayi <luhuayi@huawei.com>
Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
2023-01-19 13:37:49 +00:00

242 lines
33 KiB
HTML

<a name="EN-US_TOPIC_0000001099150630"></a><a name="EN-US_TOPIC_0000001099150630"></a>
<h1 class="topictitle1">Conditional Expression Functions</h1>
<div id="body8662426"><div class="section" id="EN-US_TOPIC_0000001099150630__s108862d48319440ab7ee5d012d854f87"><h4 class="sectiontitle">Conditional Expression Functions</h4><ul id="EN-US_TOPIC_0000001099150630__u84c465073c514332b6929b3e2d0ad594"><li id="EN-US_TOPIC_0000001099150630__l286c723e561648949231dbf4e3ac4d47">coalesce(expr1, expr2, ..., exprn)<p id="EN-US_TOPIC_0000001099150630__aee853bf8044c41bcad5bb84d8b578b2a"><a name="EN-US_TOPIC_0000001099150630__l286c723e561648949231dbf4e3ac4d47"></a><a name="l286c723e561648949231dbf4e3ac4d47"></a>Description: Returns the first argument that is not <strong id="EN-US_TOPIC_0000001099150630__b535525934513">NULL</strong> in the argument list.</p>
<p id="EN-US_TOPIC_0000001099150630__a26a7b09c60204220bfdabefb92847712"><strong id="EN-US_TOPIC_0000001099150630__b200618155847">COALESCE(expr1, expr2)</strong> is equivalent to <strong id="EN-US_TOPIC_0000001099150630__b1805566155847">CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END</strong>.</p>
<p id="EN-US_TOPIC_0000001099150630__ace9a96d5ea1f47d5bb466aa4ae3681d1">For example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001099150630__sfeba85247f5549c283e145e812c9259a"><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'</span><span class="p">);</span><span class="w"></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="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span><span class="w"></span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001099150630__ab9a01cac03f2494cbc39646659b8b209">Note:</p>
<ul id="EN-US_TOPIC_0000001099150630__udaa0162dda344566a7037885b0ffbcbd"><li id="EN-US_TOPIC_0000001099150630__l09d1dd85441f41c59f99e01388b80984"><strong id="EN-US_TOPIC_0000001099150630__b4997121016463">NULL</strong> is returned only if all parameters are <strong id="EN-US_TOPIC_0000001099150630__b644031713461">NULL</strong>.</li><li id="EN-US_TOPIC_0000001099150630__le5b9ab31d3ef4e3fbc6a9ae330ad5551">This value is replaced by the default value when data is displayed.</li><li id="EN-US_TOPIC_0000001099150630__le53c4a939ec54dd0baff2df56afa9445">Like a CASE expression, COALESCE 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.</li></ul>
</li><li id="EN-US_TOPIC_0000001099150630__l3572a653eee74dc48de2c850f3c04bd6">decode(base_expr, compare1, value1, Compare2,value2, ... default)<p id="EN-US_TOPIC_0000001099150630__a9fa365b242824e9eb9820b2ed576ae20"><a name="EN-US_TOPIC_0000001099150630__l3572a653eee74dc48de2c850f3c04bd6"></a><a name="l3572a653eee74dc48de2c850f3c04bd6"></a>Description: Compares base_expr with each compare(n) and returns value(n) if they are matched. If base_expr does not match each <strong id="EN-US_TOPIC_0000001099150630__b84235270611366">compare(n)</strong>, the default value is returned.</p>
<p id="EN-US_TOPIC_0000001099150630__a1b8a037c32c8416a89fad608c29029ea">For example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001099150630__sdf9f6793c0d344c7a38d9a4319ad09e8"><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="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="w"></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="w"></span>
</pre></div></td></tr></table></div>
</div>
</li><li id="EN-US_TOPIC_0000001099150630__li1720644864213">if(bool_expr, expr1, expr2)<p id="EN-US_TOPIC_0000001099150630__p62261236154215"><a name="EN-US_TOPIC_0000001099150630__li1720644864213"></a><a name="li1720644864213"></a>Description: Returns <strong id="EN-US_TOPIC_0000001099150630__b12923821356">expr1</strong> or <strong id="EN-US_TOPIC_0000001099150630__b6491911173513">expr2</strong>. If the value of <strong id="EN-US_TOPIC_0000001099150630__b17495639123315">bool_expr</strong> is <strong id="EN-US_TOPIC_0000001099150630__b164961239173319">true</strong>, <strong id="EN-US_TOPIC_0000001099150630__b4496839183311">expr1</strong> is returned. Otherwise, <strong id="EN-US_TOPIC_0000001099150630__b16497839103310">expr2</strong> is returned.</p>
<p id="EN-US_TOPIC_0000001099150630__p1811836192016">This function is equivalent to <strong id="EN-US_TOPIC_0000001099150630__b10377171343610">CASE WHEN bool_expr = true THEN expr1 ELSE expr2 END</strong>.</p>
<p id="EN-US_TOPIC_0000001099150630__p12226336174219">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001099150630__screen1022673610426"><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">if</span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="s1">'yes'</span><span class="p">,</span><span class="w"> </span><span class="s1">'no'</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">if</span><span class="w"></span>
<span class="c1">-----</span>
<span class="w"> </span><span class="n">yes</span><span class="w"></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="w"></span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001099150630__p10950191816343">Note: <strong id="EN-US_TOPIC_0000001099150630__b419565711377">expr1</strong> and <strong id="EN-US_TOPIC_0000001099150630__b0657151183810">expr2</strong> can be of any type. For details about the available types, see <a href="dws_06_0080.html">UNION, CASE, and Related Constructs</a>.</p>
</li><li id="EN-US_TOPIC_0000001099150630__li1070716213435">ifnull(expr1, expr2)<p id="EN-US_TOPIC_0000001099150630__p1212215418426"><a name="EN-US_TOPIC_0000001099150630__li1070716213435"></a><a name="li1070716213435"></a>Description: Returns <strong id="EN-US_TOPIC_0000001099150630__b1837055218393">expr1</strong> or <strong id="EN-US_TOPIC_0000001099150630__b1437065213392">expr2</strong>. If <strong id="EN-US_TOPIC_0000001099150630__b101920174012">expr1</strong> is not <strong id="EN-US_TOPIC_0000001099150630__b1899491916113">NULL</strong>, <strong id="EN-US_TOPIC_0000001099150630__b188301229114020">expr1</strong> is returned. Otherwise, <strong id="EN-US_TOPIC_0000001099150630__b1066715481405">expr2</strong> is returned.</p>
<p id="EN-US_TOPIC_0000001099150630__p3122115410420">This function is logically equivalent to <strong id="EN-US_TOPIC_0000001099150630__b73661334194112">CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END</strong>.</p>
<p id="EN-US_TOPIC_0000001099150630__p7122185414422">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001099150630__screen201221354134210"><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">ifnull</span><span class="p">(</span><span class="k">NULL</span><span class="p">,</span><span class="s1">'hello'</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">ifnull</span><span class="w"></span>
<span class="c1">--------</span>
<span class="w"> </span><span class="n">hello</span><span class="w"></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="w"></span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001099150630__p649469145214">Note: <strong id="EN-US_TOPIC_0000001099150630__b17898549174116">expr1</strong> and <strong id="EN-US_TOPIC_0000001099150630__b3898134944110">expr2</strong> can be of any type. For details about the available types, see <a href="dws_06_0080.html">UNION, CASE, and Related Constructs</a>.</p>
</li><li id="EN-US_TOPIC_0000001099150630__li5852151819434">isnull(expr)<p id="EN-US_TOPIC_0000001099150630__p15852181854311"><a name="EN-US_TOPIC_0000001099150630__li5852151819434"></a><a name="li5852151819434"></a>Description: Checks whether <strong id="EN-US_TOPIC_0000001099150630__b264454794218">expr</strong> is <strong id="EN-US_TOPIC_0000001099150630__b283825518118">NULL</strong>. If it is <strong id="EN-US_TOPIC_0000001099150630__b6503612126">NULL</strong>, <strong id="EN-US_TOPIC_0000001099150630__b156538454311">true</strong> is returned. Otherwise, <strong id="EN-US_TOPIC_0000001099150630__b1722131911437">false</strong> is returned.</p>
<p id="EN-US_TOPIC_0000001099150630__p813434010308">This function is logically equivalent to <strong id="EN-US_TOPIC_0000001099150630__b18647145114441">expr IS NULL</strong>.</p>
<p id="EN-US_TOPIC_0000001099150630__p58525184431">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001099150630__screen1585271819433"><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">isnull</span><span class="p">(</span><span class="k">NULL</span><span class="p">),</span><span class="w"> </span><span class="k">isnull</span><span class="p">(</span><span class="s1">'abc'</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">isnull</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">isnull</span><span class="w"></span>
<span class="c1">--------+--------</span>
<span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span><span class="w"></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="w"></span>
</pre></div></td></tr></table></div>
</div>
</li><li id="EN-US_TOPIC_0000001099150630__l7372dc2b242943d092e577dc63918573">nullif(expr1, expr2)<p id="EN-US_TOPIC_0000001099150630__ae1e0cd89479a45b8930fdff3ad9ffcc0"><a name="EN-US_TOPIC_0000001099150630__l7372dc2b242943d092e577dc63918573"></a><a name="l7372dc2b242943d092e577dc63918573"></a>Description: Returns <strong id="EN-US_TOPIC_0000001099150630__b372895819441">NULL</strong> or <strong id="EN-US_TOPIC_0000001099150630__b9836132016455">expr1</strong>. If <strong id="EN-US_TOPIC_0000001099150630__b197343583440">expr1</strong> is equal to <strong id="EN-US_TOPIC_0000001099150630__b173595818445">expr2</strong>, <strong id="EN-US_TOPIC_0000001099150630__b627717470451">NULL</strong> is returned. Otherwise, <strong id="EN-US_TOPIC_0000001099150630__b87351258154412">expr1</strong> is returned.</p>
<p id="EN-US_TOPIC_0000001099150630__adcd4c563131c4d55b808405c4efe3e99"><strong id="EN-US_TOPIC_0000001099150630__b842352706195558">nullif(expr1, expr2)</strong> is equivalent to <strong id="EN-US_TOPIC_0000001099150630__b84235270619561">CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END</strong>.</p>
<p id="EN-US_TOPIC_0000001099150630__a683426df03f5478e8e3da3ee9801ad44">For example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001099150630__s943c2eb7f9a04bba91c4b93f7424ca32"><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">'world'</span><span class="p">);</span><span class="w"></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="w"></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="w"></span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001099150630__a773e8c1eba6e4debaf6e9097d9619d67">Note:</p>
<p id="EN-US_TOPIC_0000001099150630__a3effc79fb0aa47509fdfd4972694fd56">Assume the two parameter data types are different:</p>
<ul id="EN-US_TOPIC_0000001099150630__u6c2400c927fc4e8695383da3106d2658"><li id="EN-US_TOPIC_0000001099150630__l8cef08fbe5b847628ea792410d9d45f3">If implicit conversion exists between the two data types, implicitly convert the parameter of lower priority to this data type using the data type of higher priority. If the conversion succeeds, computation is performed. Otherwise, an error is returned. For example:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001099150630__s32ac99e4eac149908ab8158414900116"><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">'1234'</span><span class="p">::</span><span class="nb">VARCHAR</span><span class="p">,</span><span class="mi">123</span><span class="p">::</span><span class="n">INT4</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">nullif</span><span class="w"> </span>
<span class="c1">--------</span>
<span class="w"> </span><span class="mi">1234</span><span class="w"></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="w"></span>
</pre></div></td></tr></table></div>
</div>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001099150630__sd01891155f924f69bb7a69ec88b26ac1"><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="k">nullif</span><span class="p">(</span><span class="s1">'1234'</span><span class="p">::</span><span class="nb">VARCHAR</span><span class="p">,</span><span class="s1">'2012-12-24'</span><span class="p">::</span><span class="nb">DATE</span><span class="p">);</span><span class="w"></span>
<span class="n">ERROR</span><span class="p">:</span><span class="w"> </span><span class="n">invalid</span><span class="w"> </span><span class="k">input</span><span class="w"> </span><span class="n">syntax</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="k">timestamp</span><span class="p">:</span><span class="w"> </span><span class="ss">&quot;1234&quot;</span><span class="w"></span>
</pre></div></td></tr></table></div>
</div>
</li><li id="EN-US_TOPIC_0000001099150630__l767faa76c8064d7594ffd932f2d27d8d">If implicit conversion is not applied between two data types, an error is displayed. For example:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001099150630__s4008ace51ee8459684ef168e5d9b3d3f"><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="k">TRUE</span><span class="p">::</span><span class="nb">BOOLEAN</span><span class="p">,</span><span class="s1">'2012-12-24'</span><span class="p">::</span><span class="nb">DATE</span><span class="p">);</span><span class="w"></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="n">does</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="n">exist</span><span class="p">:</span><span class="w"> </span><span class="nb">boolean</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">timestamp</span><span class="w"> </span><span class="k">without</span><span class="w"> </span><span class="k">time</span><span class="w"> </span><span class="k">zone</span><span class="w"></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="k">SELECT</span><span class="w"> </span><span class="k">nullif</span><span class="p">(</span><span class="k">TRUE</span><span class="p">::</span><span class="nb">BOOLEAN</span><span class="p">,</span><span class="s1">'2012-12-24'</span><span class="p">::</span><span class="nb">DATE</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">DUAL</span><span class="p">;</span><span class="w"></span>
<span class="o">^</span><span class="w"></span>
<span class="n">HINT</span><span class="p">:</span><span class="w"> </span><span class="k">No</span><span class="w"> </span><span class="k">operator</span><span class="w"> </span><span class="n">matches</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">given</span><span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="n">argument</span><span class="w"> </span><span class="k">type</span><span class="p">(</span><span class="n">s</span><span class="p">).</span><span class="w"> </span><span class="n">You</span><span class="w"> </span><span class="n">might</span><span class="w"> </span><span class="n">need</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="k">add</span><span class="w"> </span><span class="n">explicit</span><span class="w"> </span><span class="k">type</span><span class="w"> </span><span class="n">casts</span><span class="p">.</span><span class="w"></span>
</pre></div></td></tr></table></div>
</div>
</li></ul>
</li><li id="EN-US_TOPIC_0000001099150630__l599f2976fedd4a39b6541b1b5bca1599">nvl( expr1 , expr2 )<p id="EN-US_TOPIC_0000001099150630__a65390b56d0114f5a9c2fa77bfd1f6e57"><a name="EN-US_TOPIC_0000001099150630__l599f2976fedd4a39b6541b1b5bca1599"></a><a name="l599f2976fedd4a39b6541b1b5bca1599"></a>Returns <strong id="EN-US_TOPIC_0000001099150630__b1856714314467">expr1</strong> or <strong id="EN-US_TOPIC_0000001099150630__b5724195034611">expr2</strong>. If <strong id="EN-US_TOPIC_0000001099150630__b115138517466">expr1</strong> is <strong id="EN-US_TOPIC_0000001099150630__b2051810513461">NULL</strong>, <strong id="EN-US_TOPIC_0000001099150630__b12519145124614">expr2</strong> is returned. Otherwise, <strong id="EN-US_TOPIC_0000001099150630__b208871966475">expr1</strong> is returned.</p>
<p id="EN-US_TOPIC_0000001099150630__a9c610c34372c4e67928370a7943f50eb">For example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001099150630__s27f08bda85104d228dc4a481376206a0"><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="s1">'hello'</span><span class="p">,</span><span class="s1">'world'</span><span class="p">);</span><span class="w"></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="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span><span class="w"></span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001099150630__aa14957c4726f46bc99953ddd8747ced6">Parameters expr1 and expr2 can be of any data type. If expr1 and expr2 are of different data types, NVL checks whether expr2 can be implicitly converted to expr1. If it can, the expr1 data type is returned. If epr2 cannot be implicitly converted to expr1 but epr1 can be implicitly converted to expr2, the expr2 data type is returned. If no implicit type conversion exists between the two parameters and the parameters are different data types, an error is reported.</p>
</li><li id="EN-US_TOPIC_0000001099150630__l32e514aedc674093b65b2373ac3a116d">sys_context( 'namespace' , 'parameter')<p id="EN-US_TOPIC_0000001099150630__a1d62063acc0a4a14a269cfb29f1bcf96"><a name="EN-US_TOPIC_0000001099150630__l32e514aedc674093b65b2373ac3a116d"></a><a name="l32e514aedc674093b65b2373ac3a116d"></a>Description: Obtains and returns the parameter values of a specified <strong id="EN-US_TOPIC_0000001099150630__b853131154816">namespace</strong>.</p>
<p id="EN-US_TOPIC_0000001099150630__a27728822128f4b8ab4751ed2989b481c">Return type: VARCHAR</p>
<p id="EN-US_TOPIC_0000001099150630__ac621d6e0f1c140239dc597ebbabfb950">For example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001099150630__s3044de91d0544b99917d45895778e0a9"><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">sys_context</span><span class="p">(</span><span class="s1">'USERENV'</span><span class="p">,</span><span class="w"> </span><span class="s1">'CURRENT_SCHEMA'</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">sys_context</span><span class="w"> </span>
<span class="c1">-------------</span>
<span class="w"> </span><span class="k">public</span><span class="w"></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="w"></span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001099150630__a544ef6d9c67a4000ba8607e2df8c4e65">The result varies according to the current actual schema.</p>
<p id="EN-US_TOPIC_0000001099150630__af2620179b47344499e55e6f2c2b825af">Note: Currently, only the following formats are supported: SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') and SYS_CONTEXT('USERENV', 'CURRENT_USER').</p>
</li><li id="EN-US_TOPIC_0000001099150630__lb3058e9dc0bf4ba09d71d324b703074c">greatest(expr1 [, ...])<p id="EN-US_TOPIC_0000001099150630__a8368f553b89d49098d9216a846129297"><a name="EN-US_TOPIC_0000001099150630__lb3058e9dc0bf4ba09d71d324b703074c"></a><a name="lb3058e9dc0bf4ba09d71d324b703074c"></a>Description: Selects the largest value from a list of any number of expressions.</p>
<p id="EN-US_TOPIC_0000001099150630__a9dbaac05bd6a472aac24c799606e64e1">Return type:</p>
<p id="EN-US_TOPIC_0000001099150630__a100d93b90c5e430b9c8ded5926f3e2b2">For example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001099150630__s5aa6bc098ce64751b1cd1ab2787dd185"><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">1</span><span class="o">*</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="o">-</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span><span class="w"></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">3</span><span class="w"></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="w"></span>
</pre></div></td></tr></table></div>
</div>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001099150630__s4eb18fdf468f42c18194eef140541188"><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="s1">'ABC'</span><span class="p">,</span><span class="w"> </span><span class="s1">'BCD'</span><span class="p">,</span><span class="w"> </span><span class="s1">'CDE'</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">greatest</span><span class="w"> </span>
<span class="c1">----------</span>
<span class="w"> </span><span class="n">CDE</span><span class="w"></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="w"></span>
</pre></div></td></tr></table></div>
</div>
</li><li id="EN-US_TOPIC_0000001099150630__le0da865f6d8d4158a60aa4b202333f59">least(expr1 [, ...])<p id="EN-US_TOPIC_0000001099150630__a942c5d02699e4e52900f0c3fd1fbc41f"><a name="EN-US_TOPIC_0000001099150630__le0da865f6d8d4158a60aa4b202333f59"></a><a name="le0da865f6d8d4158a60aa4b202333f59"></a>Description: Selects the smallest value from a list of any number of expressions.</p>
<p id="EN-US_TOPIC_0000001099150630__ae7b6e7d53f6c4932b233cef9d9617160">For example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001099150630__sdf9bad600efd4900846cbb1e851c1f2d"><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">1</span><span class="o">*</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="o">-</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="o">-</span><span class="mi">1</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">least</span><span class="w"> </span>
<span class="c1">-------</span>
<span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="w"></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="w"></span>
</pre></div></td></tr></table></div>
</div>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001099150630__s80eb762d35654570b4751a554d972ee1"><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="s1">'ABC'</span><span class="p">,</span><span class="s1">'BCD'</span><span class="p">,</span><span class="s1">'CDE'</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">least</span><span class="w"> </span>
<span class="c1">--------</span>
<span class="w"> </span><span class="n">ABC</span><span class="w"></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="w"></span>
</pre></div></td></tr></table></div>
</div>
</li><li id="EN-US_TOPIC_0000001099150630__ld0b4fa302e074ca2bb658c55b05e6dc4">EMPTY_BLOB()<p id="EN-US_TOPIC_0000001099150630__a8b067e81df0a49218e87da1807f5f602"><a name="EN-US_TOPIC_0000001099150630__ld0b4fa302e074ca2bb658c55b05e6dc4"></a><a name="ld0b4fa302e074ca2bb658c55b05e6dc4"></a>Description: Initiates a BLOB variable in an INSERT or an UPDATE statement to a NULL value.</p>
<p id="EN-US_TOPIC_0000001099150630__afae287c5392b48948ed6c776c350ad59">Return type: BLOB</p>
<p id="EN-US_TOPIC_0000001099150630__a82bb3aa5544d4056a60f8a7d7b315960">For example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001099150630__s28abb096ecac4d269b48444b01d2d7ff"><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="c1">-- Create a table:</span>
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">blob_tb</span><span class="p">(</span><span class="n">b</span><span class="w"> </span><span class="nb">blob</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="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="w"></span>
<span class="c1">-- Insert data:</span>
<span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">blob_tb</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="n">empty_blob</span><span class="p">(),</span><span class="mi">1</span><span class="p">);</span><span class="w"></span>
<span class="c1">--Delete the table.</span>
<span class="k">DROP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">blob_tb</span><span class="p">;</span><span class="w"></span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001099150630__a2201e30c6cf449c88e8cdc1a9e57b793">Note: The length is 0 obtained using <strong>DBMS.GETLENGTH</strong> in a parallel mode.</p>
</li></ul>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0027.html">Functions and Operators</a></div>
</div>
</div>