forked from docs/doc-exports
Reviewed-by: Hasko, Vladimir <vladimir.hasko@t-systems.com> 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>
156 lines
30 KiB
HTML
156 lines
30 KiB
HTML
<a name="EN-US_TOPIC_0000001819416137"></a><a name="EN-US_TOPIC_0000001819416137"></a>
|
|
|
|
<h1 class="topictitle1">Query Optimization Operators</h1>
|
|
<div id="body8662426"><p id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_p34870561809">This section describes the syntax for migrating Teradata query optimization operators. The migration syntax determines how the keywords and features are migrated.</p>
|
|
<p id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_p29855663114453">Use the <a href="dws_16_0014.html#EN-US_TOPIC_0000001819416085__en-us_topic_0000001706224349_en-us_topic_0000001432527901_li9993144993210">inToExists</a> parameter to configure the migration from <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b5403272288833">IN</strong> or<strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b8371204298833">NOT IN</strong> to <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b9786034858833">EXISTS</strong> or <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b7093678148833">NOT EXISTS</strong>.</p>
|
|
<p id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_p62893222114444">This parameter defaults to <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b13104401098833">FALSE</strong>. To enable the query optimization feature, this parameter must be set to <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b2640029928833">TRUE</strong>.</p>
|
|
<p id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_p97611022141018"></p>
|
|
<p id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_p52874701114937">When being converted to GaussDB A or GaussDB(DWS) SQL queries, Teradata queries containing the <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b15302034018833">IN</strong> and <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b516067848833">NOT IN</strong> operators have been optimized, and <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b13723377418833">IN</strong> and <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b19630735548833">NOT IN</strong> have been converted to <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b1035609588833">EXISTS</strong> and <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b5043630868833">NOT EXISTS</strong>, respectively. The <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b10757381948833">IN</strong> and <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b13463285498833">NOT IN</strong> operators support single or multiple columns. DSC will migrate the <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b13735061018833">IN</strong> or <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b9925532678833">NOT IN</strong> statement only when it exists in the <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b19931549868833">WHERE</strong> or <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b7600347148833">ON</strong> clause. The following example shows the conversion from <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b15330270228833">IN</strong> to <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b20169916098833">EXISTS</strong>, which is also applicable to the conversion from <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b9583479578833">NOT IN</strong> to <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b10147356968833">NOT EXISTS</strong>.</p>
|
|
<p id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_p51468708115219"><strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b2860678617445">Simple conversion from IN to EXISTS</strong></p>
|
|
<p id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_p6002796517732">In the following example, the keyword <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b3620392398833">IN</strong> is provided in the input file. During the migration, DSC replaces <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b14621418428833">IN</strong> with <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b4761950028833">EXISTS</strong> to optimize query performance.</p>
|
|
<div class="note" id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_note1688212401112"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_ul123707018201"><li id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_li7370140172019">The <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b14511878778833">IN</strong> and <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b8547610578833">NOT IN</strong> statements with nested <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b8362060038833">IN</strong> and <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b5275080008833">NOT IN</strong> keywords cannot be migrated. In this case, the scripts will be invalid after migration.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_screen48809147437"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">UPDATE</span><span class="w"> </span><span class="n">tab1</span>
|
|
<span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">123</span>
|
|
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="k">IN</span><span class="w"> </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">AND</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="n">i</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tab2</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">j</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="k">SELECT</span><span class="w"> </span><span class="n">m</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tab3</span>
|
|
<span class="w"> </span><span class="p">)</span>
|
|
<span class="w"> </span><span class="p">)</span>
|
|
<span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_p27321311123720">When an <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b10647608088833">IN</strong> or <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b13274389958833">NOT IN</strong> statement containing subqueries is being migrated, comments between the <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b18084697858833">IN</strong> or <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b13881630528833">NOT IN</strong> operator and the subqueries (see the example) cannot be migrated.</p>
|
|
<p id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_p1058310501919"><strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b106053561916">Example:</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_screen2712151181"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span>
|
|
<span class="normal">6</span>
|
|
<span class="normal">7</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">categories</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">category_name</span>
|
|
<span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="c1">--comment </span>
|
|
<span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="n">category_name</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">categories1</span><span class="w"> </span><span class="p">)</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">category_name</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li></ul>
|
|
<ul id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_ul15613636152016"><li id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_li4613836132012"><strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b1614313148211">Migrating IN or NOT IN statements whose object names contain $ and #</strong><ul id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_ul203616975314"><li id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_li11341174152312">DSC will not migrate the query if the <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b6110529748833">TABLE</strong> name or <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b10964645008833">TABLE ALIAS</strong> starts with <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b2622288238833">$</strong>.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_screen103411241192316"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">Customer_Name</span>
|
|
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">Customer_t</span><span class="w"> </span><span class="err">$</span><span class="n">A</span>
|
|
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">Customer_ID</span><span class="w"> </span><span class="k">IN</span><span class="p">(</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="n">Customer_ID</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">Customer_t</span><span class="w"> </span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li></ul>
|
|
<ul id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_ul10574741175312"><li id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_li6685096244">If the <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b13766492958833">COLUMN</strong> name starts with <strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b16716445998833">#</strong>, DSC may fail to migrate the query.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_screen175766415534"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">Customer_Name</span>
|
|
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">Customer_t</span>
|
|
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="o">#</span><span class="n">Customer_ID</span><span class="w"> </span><span class="k">IN</span><span class="p">(</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">#</span><span class="n">Customer_ID</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">Customer_t</span><span class="w"> </span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li></ul>
|
|
</li></ul>
|
|
<p id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_p222434152012"></p>
|
|
</div></div>
|
|
<p id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_p43638307115434"><strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b44841201414">Input: IN</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_screen65294459115757"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="p">...</span>
|
|
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tab1</span><span class="w"> </span><span class="n">t</span>
|
|
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">t</span><span class="p">.</span><span class="n">col1</span><span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="p">(</span><span class="k">SELECT</span><span class="w"> </span><span class="n">icol1</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tab2</span><span class="w"> </span><span class="n">e</span><span class="p">)</span>
|
|
<span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">col1</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_p25700439115447"><strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b15864548838833">Output</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_screen10081266115852"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span>
|
|
<span class="normal">6</span>
|
|
<span class="normal">7</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="p">...</span>
|
|
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tab1</span><span class="w"> </span><span class="n">t</span>
|
|
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="p">(</span><span class="k">SELECT</span><span class="w"> </span><span class="n">icol1</span>
|
|
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">tab2</span><span class="w"> </span><span class="n">e</span>
|
|
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">icol1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">t</span><span class="p">.</span><span class="n">col1</span>
|
|
<span class="w"> </span><span class="p">)</span>
|
|
<span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">col1</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_p136014541181"><strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b5116202748833">Input: IN with multiple columns and Aggregate functions</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_screen9967121612562"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">deptno</span><span class="p">,</span><span class="w"> </span><span class="n">job_id</span><span class="p">,</span><span class="w"> </span><span class="n">empno</span><span class="p">,</span><span class="w"> </span><span class="n">salary</span><span class="p">,</span><span class="w"> </span><span class="n">bonus</span>
|
|
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">emp_t</span>
|
|
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">deptno</span><span class="p">,</span><span class="w"> </span><span class="n">job_id</span><span class="p">,</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="n">salary</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">NUMBER</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">2</span><span class="p">))</span><span class="o">+</span><span class="k">CAST</span><span class="p">(</span><span class="n">bonus</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">NUMBER</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">2</span><span class="p">))</span><span class="w"> </span><span class="p">)</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">IN</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="n">deptno</span><span class="p">,</span><span class="w"> </span><span class="n">job_id</span><span class="p">,</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">MAX</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">salary</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">NUMBER</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">2</span><span class="p">))</span><span class="o">+</span><span class="k">CAST</span><span class="p">(</span><span class="n">bonus</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">NUMBER</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">2</span><span class="p">)))</span>
|
|
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">emp_t</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">hire_dt</span><span class="w"> </span><span class="o">>=</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="w"> </span><span class="s1">'20170101'</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="w"> </span><span class="n">FORMAT</span><span class="w"> </span><span class="s1">'YYYYMMDD'</span><span class="w"> </span><span class="p">)</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">deptno</span><span class="p">,</span><span class="w"> </span><span class="n">job_id</span><span class="w"> </span><span class="p">)</span>
|
|
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">hire_dt</span><span class="w"> </span><span class="k">IS</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_p59707164566"><strong id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_b594920503612">Output</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819416137__en-us_topic_0000001658024718_en-us_topic_0000001384071356_screen10970516115619"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
|
<span class="normal"> 2</span>
|
|
<span class="normal"> 3</span>
|
|
<span class="normal"> 4</span>
|
|
<span class="normal"> 5</span>
|
|
<span class="normal"> 6</span>
|
|
<span class="normal"> 7</span>
|
|
<span class="normal"> 8</span>
|
|
<span class="normal"> 9</span>
|
|
<span class="normal">10</span>
|
|
<span class="normal">11</span>
|
|
<span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">deptno</span><span class="p">,</span><span class="w"> </span><span class="n">job_id</span><span class="p">,</span><span class="w"> </span><span class="n">empno</span><span class="p">,</span><span class="w"> </span><span class="n">salary</span><span class="p">,</span><span class="w"> </span><span class="n">bonus</span>
|
|
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">emp_t</span><span class="w"> </span><span class="n">MAlias1</span>
|
|
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="n">deptno</span><span class="p">,</span><span class="w"> </span><span class="n">job_id</span><span class="p">,</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">MAX</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">salary</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">NUMBER</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">2</span><span class="p">))</span><span class="o">+</span><span class="k">CAST</span><span class="p">(</span><span class="n">bonus</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">NUMBER</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">2</span><span class="p">)))</span>
|
|
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">emp_t</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">hire_dt</span><span class="w"> </span><span class="o">>=</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="w"> </span><span class="s1">'20170101'</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DATE</span><span class="p">)</span>
|
|
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">deptno</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">MAlias1</span><span class="p">.</span><span class="n">deptno</span>
|
|
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">job_id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">MAlias1</span><span class="p">.</span><span class="n">job_id</span>
|
|
<span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">deptno</span><span class="p">,</span><span class="w"> </span><span class="n">job_id</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="k">HAVING</span><span class="w"> </span><span class="k">MAX</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">salary</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">NUMBER</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">2</span><span class="p">))</span><span class="o">+</span><span class="k">CAST</span><span class="p">(</span><span class="n">bonus</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">NUMBER</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">2</span><span class="p">)))</span>
|
|
<span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="n">MAlias1</span><span class="p">.</span><span class="n">salary</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">NUMBER</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">2</span><span class="p">))</span><span class="o">+</span><span class="k">CAST</span><span class="p">(</span><span class="n">MAlias1</span><span class="p">.</span><span class="n">bonus</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">NUMBER</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">2</span><span class="p">))</span><span class="w"> </span><span class="p">)</span>
|
|
<span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">hire_dt</span><span class="w"> </span><span class="k">IS</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</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_16_0041.html">Functions and Operators</a></div>
|
|
</div>
|
|
</div>
|
|
|