doc-exports/docs/dws/tool/dws_16_0053.html
Lu, Huayi 27019c2991 DWS TOOL 830.201 version
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>
2024-05-16 07:35:25 +00:00

221 lines
23 KiB
HTML

<a name="EN-US_TOPIC_0000001819336105"></a><a name="EN-US_TOPIC_0000001819336105"></a>
<h1 class="topictitle1">FORMAT and CAST</h1>
<div id="body8662426"><p id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_p47501660102014">In Teradata, the <strong id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_b53945115331634">FORMAT</strong> keyword is used for formatting a column/expression. For example, FORMAT '9(n)' and 'z(n)' are addressed using LPAD with 0 and space (' ') respectively.</p>
<p id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_p24861756102014">Data typing is done using <strong id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_b42278302131634">CAST</strong> or direct data type [like (expression1)(CHAR(n))]. This feature is addressed using <strong id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_b93560201131634">CAST</strong>. For details, see <a href="dws_16_0099.html#EN-US_TOPIC_0000001772696148">Type Casting and Formatting</a>.</p>
<div class="p" id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_p8781653144313"><strong id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_b2058053820443">Input: FORMAT with CAST</strong><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_screen2032392312494"><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">SELECT</span>
<span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="k">TRIM</span><span class="p">(</span><span class="w"> </span><span class="n">Agt_Num</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DECIMAL</span><span class="p">(</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="p">,</span><span class="mi">0</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="n">FORMAT</span><span class="w"> </span><span class="s1">'9(5)'</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">C03_AGENT_BOND</span>
<span class="p">;</span>
<span class="k">SELECT</span>
<span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="w"> </span><span class="n">Agt_Num</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">INT</span><span class="w"> </span><span class="n">FORMAT</span><span class="w"> </span><span class="s1">'Z(17)'</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">)</span>
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span>
<span class="w"> </span><span class="n">C03_AGENT_BOND</span>
<span class="p">;</span>
<span class="k">SELECT</span>
<span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="w"> </span><span class="n">CND_VLU</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">DECIMAL</span><span class="p">(</span><span class="w"> </span><span class="mi">17</span><span class="w"> </span><span class="p">,</span><span class="mi">0</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="n">FORMAT</span><span class="w"> </span><span class="s1">'Z(17)'</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="w"> </span><span class="mi">17</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">)</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">C03_AGENT_BOND</span>
<span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div>
<p id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_p1734572334912"><strong id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_b18835758144411">Output</strong></p>
<pre class="screen" id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_screen361954514379">SELECT
LPAD( CAST( TRIM( Agt_Num ) AS DECIMAL( 5 ,0 ) ) ,5 ,'0' ) AS Agt_Num
FROM
C03_AGENT_BOND
;
SELECT
CAST(CAST( Agt_Num AS INT FORMAT 'Z(17)' ) AS CHAR( 5 ) )
FROM
C03_AGENT_BOND
;
SELECT
LENGTH( CAST( LPAD( CAST( CND_VLU AS DECIMAL( 17 ,0 ) ) ,17 ,' ' ) AS VARCHAR( 17 ) ) ) AS CND_VLU
FROM
C03_AGENT_BOND
;</pre>
<p id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_p10767710114311"><strong id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_b13816236439">Input - FORMAT 'Z(n)9'</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_screen51831447132617"><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="k">SELECT</span>
<span class="w"> </span><span class="n">standard_price</span><span class="w"> </span><span class="p">(</span><span class="n">FORMAT</span><span class="w"> </span><span class="s1">'Z(5)9'</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="nb">CHAR</span><span class="p">(</span><span class="w"> </span><span class="mi">6</span><span class="w"> </span><span class="p">))</span>
<span class="w"> </span><span class="p">,</span><span class="n">max_price</span><span class="w"> </span><span class="p">(</span><span class="n">FORMAT</span><span class="w"> </span><span class="s1">'ZZZZZ9'</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="nb">CHAR</span><span class="p">(</span><span class="w"> </span><span class="mi">6</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">product_t</span>
<span class="p">;</span><span class="w"> </span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_p15231225142716"><strong id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_b1659543164010">Output</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_screen192251825112716"><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="k">SELECT</span>
<span class="w"> </span><span class="k">CAST</span><span class="p">(</span><span class="w"> </span><span class="n">TO_CHAR</span><span class="p">(</span><span class="w"> </span><span class="n">standard_price</span><span class="w"> </span><span class="p">,</span><span class="s1">'999990'</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="w"> </span><span class="mi">6</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">standard_price</span>
<span class="w"> </span><span class="p">,</span><span class="k">CAST</span><span class="p">(</span><span class="w"> </span><span class="n">TO_CHAR</span><span class="p">(</span><span class="w"> </span><span class="n">max_price</span><span class="w"> </span><span class="p">,</span><span class="s1">'999990'</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="w"> </span><span class="mi">6</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">max_price</span>
<span class="w"> </span><span class="k">FROM</span>
<span class="w"> </span><span class="n">product_t</span>
<span class="p">;</span><span class="w"> </span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_p15356792287"><strong id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_b134607645331634">Input - FORMAT 'z(m)9.9(n)</strong><strong id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_b5824099831634">'</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_screen136694292816"><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">standard_price</span><span class="w"> </span><span class="p">(</span><span class="n">FORMAT</span><span class="w"> </span><span class="s1">'Z(6)9.9(2)'</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="nb">CHAR</span><span class="p">(</span><span class="w"> </span><span class="mi">6</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">product_t</span>
<span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_p1061414812919"><strong id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_b1915614499407">Output</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_screen828120177299"><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">CAST</span><span class="p">(</span><span class="w"> </span><span class="n">TO_CHAR</span><span class="p">(</span><span class="w"> </span><span class="n">standard_price</span><span class="w"> </span><span class="p">,</span><span class="s1">'9999990.00'</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="w"> </span><span class="mi">6</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">standard_price</span>
<span class="w"> </span><span class="k">FROM</span>
<span class="w"> </span><span class="n">product_t</span>
<span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_p142165194818"><strong id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_b72329166831634">Input - CAST AS INTEGER</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_screen126910224502"><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">CAST</span><span class="p">(</span><span class="w"> </span><span class="n">standard_price</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">INTEGER</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">product_t</span>
<span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_p163861456509"><strong id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_b412620516406">Output</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_screen1389810567508"><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="p">(</span><span class="n">standard_price</span><span class="p">)</span>
<span class="w"> </span><span class="k">FROM</span>
<span class="w"> </span><span class="n">product_t</span>
<span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_p4883202015113"><strong id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_b111922771931634">Input - CAST AS INTEGER FORMAT</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_screen16865115365110"><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="k">CAST</span><span class="p">(</span><span class="w"> </span><span class="n">price11</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">INTEGER</span><span class="w"> </span><span class="n">FORMAT</span><span class="w"> </span><span class="s1">'Z(4)9'</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="p">)</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">product_t</span>
<span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_p1749010713528"><strong id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_b468712533408">Output</strong></p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_screen1763816135211"><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">CAST</span><span class="p">(</span><span class="w"> </span><span class="n">TO_CHAR</span><span class="p">(</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">price11</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">,</span><span class="s1">'99990'</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">price11</span>
<span class="w"> </span><span class="k">FROM</span>
<span class="w"> </span><span class="n">product_t</span>
<span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<div class="note" id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_note202212213555"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_p560313864112">The following Gauss function is added to convert to integer:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001819336105__en-us_topic_0000001658024606_en-us_topic_0000001384390492_screen2468818155615"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">OR</span><span class="w"> </span><span class="k">REPLACE</span><span class="w"> </span><span class="k">FUNCTION</span><span class="w"> </span>
<span class="cm">/* This function is used to support &quot;CAST AS INTEGER&quot; of Teradata.</span>
<span class="cm"> It should be created in the &quot;mig_td_ext&quot; schema.</span>
<span class="cm">*/</span>
<span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">i_param</span><span class="w"> </span><span class="nb">TEXT</span><span class="w"> </span><span class="p">)</span>
<span class="k">RETURN</span><span class="w"> </span><span class="nb">INTEGER</span>
<span class="k">AS</span>
<span class="w"> </span><span class="n">v_castasint</span><span class="w"> </span><span class="nb">INTEGER</span><span class="p">;</span>
<span class="k">BEGIN</span>
<span class="w"> </span><span class="n">v_castasint</span><span class="w"> </span><span class="p">:</span><span class="o">=</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">i_param</span><span class="w"> </span><span class="k">IS</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span>
<span class="w"> </span><span class="k">THEN</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="c1">-- if NULL value is provided as input</span>
<span class="w"> </span><span class="k">WHEN</span><span class="w"> </span><span class="k">TRIM</span><span class="p">(</span><span class="n">i_param</span><span class="p">)</span><span class="w"> </span><span class="k">IS</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span>
<span class="w"> </span><span class="k">THEN</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="c1">-- if empty string with one or more spaces is provided </span>
<span class="w"> </span><span class="k">ELSE</span><span class="w"> </span><span class="n">TRUNC</span><span class="p">(</span><span class="k">CAST</span><span class="p">(</span><span class="n">i_param</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="w"> </span><span class="c1">-- if any numeric value is provided</span>
<span class="w"> </span><span class="k">END</span><span class="p">;</span>
<span class="k">RETURN</span><span class="w"> </span><span class="n">v_castasint</span><span class="p">;</span>
<span class="k">END</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div></div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_16_0049.html">Query Migration Operators</a></div>
</div>
</div>