Files
doc-exports/docs/dws/umn/dws_03_2102.html
Lu, Huayi 7505fe85a9 DWS UMN 8.1.3.200 VERSION
Reviewed-by: Kacur, Michal <michal.kacur@t-systems.com>
Co-authored-by: Lu, Huayi <luhuayi@huawei.com>
Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
2023-08-31 14:40:33 +00:00

101 lines
13 KiB
HTML

<a name="EN-US_TOPIC_0000001420693973"></a><a name="EN-US_TOPIC_0000001420693973"></a>
<h1 class="topictitle1">How Do I Replace the Null Result with 0?</h1>
<div id="body0000001420693973"><p id="EN-US_TOPIC_0000001420693973__p22111531534">When OUTER JOIN (LEFT JOIN, RIGHT JOIN, and FULL JOIN) is executed, the match failure in the outer join generates a large number of NULL values. You can replace these null values with 0.</p>
<p id="EN-US_TOPIC_0000001420693973__p922395331018">You can use the <strong id="EN-US_TOPIC_0000001420693973__b3976569209">COALESCE</strong> function to do that. This function returns the first non-null parameter value in the parameter list. For example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001420693973__screen2174172311136"><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="k">coalesce</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>
<p id="EN-US_TOPIC_0000001420693973__p883752020163">Use left join to join the tables <strong id="EN-US_TOPIC_0000001420693973__b657342520536">course1</strong> and <strong id="EN-US_TOPIC_0000001420693973__b197871027165317">course2</strong>.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001420693973__screen1727193410262"><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></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">course1</span><span class="p">;</span>
<span class="w"> </span><span class="n">stu_id</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">stu_name</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">cour_name</span>
<span class="c1">----------+------------+--------------------</span>
<span class="w"> </span><span class="mi">20110103</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">ALLEN</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Math</span>
<span class="w"> </span><span class="mi">20110102</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">JACK</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Programming</span><span class="w"> </span><span class="n">Design</span>
<span class="w"> </span><span class="mi">20110101</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">MAX</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Science</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="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">course2</span><span class="p">;</span>
<span class="w"> </span><span class="n">cour_id</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">cour_name</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">teacher_name</span>
<span class="c1">---------+--------------------+--------------</span>
<span class="w"> </span><span class="mi">1002</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Programming</span><span class="w"> </span><span class="n">Design</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Mark</span>
<span class="w"> </span><span class="mi">1001</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Science</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Anne</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">SELECT</span><span class="w"> </span><span class="n">course1</span><span class="p">.</span><span class="n">stu_name</span><span class="p">,</span><span class="n">course2</span><span class="p">.</span><span class="n">cour_id</span><span class="p">,</span><span class="n">course2</span><span class="p">.</span><span class="n">cour_name</span><span class="p">,</span><span class="n">course2</span><span class="p">.</span><span class="n">teacher_name</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">course1</span><span class="w"> </span><span class="k">LEFT</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">course2</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">course1</span><span class="p">.</span><span class="n">cour_name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">course2</span><span class="p">.</span><span class="n">cour_name</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="n">stu_name</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">cour_id</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">cour_name</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">teacher_name</span>
<span class="c1">------------+---------+--------------------+--------------</span>
<span class="w"> </span><span class="n">ALLEN</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="n">JACK</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1002</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Programming</span><span class="w"> </span><span class="n">Design</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Mark</span>
<span class="w"> </span><span class="k">MAX</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1001</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Science</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Anne</span>
<span class="p">(</span><span class="mi">3</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001420693973__p8060118">Use the <strong id="EN-US_TOPIC_0000001420693973__b1568871020549">COALESCE</strong> function to replace null values in the query result with 0 or other non-zero values:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001420693973__screen356416182310"><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="k">SELECT</span><span class="w"> </span><span class="n">course1</span><span class="p">.</span><span class="n">stu_name</span><span class="p">,</span>
<span class="w"> </span><span class="k">coalesce</span><span class="p">(</span><span class="n">course2</span><span class="p">.</span><span class="n">cour_id</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">cour_id</span><span class="p">,</span>
<span class="w"> </span><span class="k">coalesce</span><span class="p">(</span><span class="n">course2</span><span class="p">.</span><span class="n">cour_name</span><span class="p">,</span><span class="s1">'NA'</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">cour_name</span><span class="p">,</span>
<span class="w"> </span><span class="k">coalesce</span><span class="p">(</span><span class="n">course2</span><span class="p">.</span><span class="n">teacher_name</span><span class="p">,</span><span class="s1">'NA'</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">teacher_name</span>
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">course1</span>
<span class="w"> </span><span class="k">LEFT</span><span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">course2</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">course1</span><span class="p">.</span><span class="n">cour_name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">course2</span><span class="p">.</span><span class="n">cour_name</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="n">stu_name</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">cour_id</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">cour_name</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">teacher_name</span>
<span class="c1">------------+---------+--------------------+--------------</span>
<span class="w"> </span><span class="n">ALLEN</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">NA</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">NA</span>
<span class="w"> </span><span class="n">JACK</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1002</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Programming</span><span class="w"> </span><span class="n">Design</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Mark</span>
<span class="w"> </span><span class="k">MAX</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1001</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Science</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Anne</span>
<span class="p">(</span><span class="mi">3</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_03_0065.html">Database Usage</a></div>
</div>
</div>