doc-exports/docs/dws/dev/dws_06_0336.html
Lu, Huayi e6fa411af0 DWS DEV 830.201 version
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:24:04 +00:00

142 lines
15 KiB
HTML

<a name="EN-US_TOPIC_0000001445382202"></a><a name="EN-US_TOPIC_0000001445382202"></a>
<h1 class="topictitle1">Series Generating Functions</h1>
<div id="body0000001445382202"><p id="EN-US_TOPIC_0000001445382202__p188626181585"><strong id="EN-US_TOPIC_0000001445382202__b1879614425712">generate_series()</strong> returns a series-based set based on the specified start value (<strong id="EN-US_TOPIC_0000001445382202__b16265531776">start</strong>), end value (<strong id="EN-US_TOPIC_0000001445382202__b18587755675">stop</strong>), and step (<strong id="EN-US_TOPIC_0000001445382202__b357075715713">step</strong>).</p>
<p id="EN-US_TOPIC_0000001445382202__p144549498014">If <strong id="EN-US_TOPIC_0000001445382202__b57531510481">step </strong>is a positive number and <strong id="EN-US_TOPIC_0000001445382202__b270071317816">start </strong>is greater than <strong id="EN-US_TOPIC_0000001445382202__b962618169814">stop</strong>, zero row is returned. If <strong id="EN-US_TOPIC_0000001445382202__b51592449811">step </strong>is a negative number and <strong id="EN-US_TOPIC_0000001445382202__b126018490810">start </strong>is less than <strong id="EN-US_TOPIC_0000001445382202__b1564410521283">stop</strong>, zero row is returned. If any input is NULL, zero rows are returned. If the value of <strong id="EN-US_TOPIC_0000001445382202__b9710147365">step</strong> is <strong id="EN-US_TOPIC_0000001445382202__b113959101966">0</strong>, an error is reported.</p>
<div class="section" id="EN-US_TOPIC_0000001445382202__section1744644917374"><h4 class="sectiontitle">generate_series(start, stop)</h4><p id="EN-US_TOPIC_0000001445382202__p1544694983712">Description: Generates a series of values, from <strong id="EN-US_TOPIC_0000001445382202__b93571411294045">start</strong> to <strong id="EN-US_TOPIC_0000001445382202__b187251455094045">stop</strong>, the default step is <strong id="EN-US_TOPIC_0000001445382202__b1848114419317">1</strong>.</p>
<p id="EN-US_TOPIC_0000001445382202__p5446144915377">Parameter type: int, bigint, or numeric</p>
<p id="EN-US_TOPIC_0000001445382202__p1344644933713">Return type: setof int, setof bigint, or setof numeric (same as the argument type)</p>
<p id="EN-US_TOPIC_0000001445382202__p1738093194217">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001445382202__screen1471353464213"><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="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">generate_series</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">4</span><span class="p">);</span>
<span class="w"> </span><span class="n">generate_series</span>
<span class="c1">-----------------</span>
<span class="w"> </span><span class="mi">2</span>
<span class="w"> </span><span class="mi">3</span>
<span class="w"> </span><span class="mi">4</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">generate_series</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="mi">3</span><span class="p">);</span>
<span class="w"> </span><span class="n">generate_series</span>
<span class="c1">-----------------</span>
<span class="p">(</span><span class="mi">0</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">generate_series</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="k">NULL</span><span class="p">);</span>
<span class="w"> </span><span class="n">generate_series</span>
<span class="c1">-----------------</span>
<span class="p">(</span><span class="mi">0</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001445382202__section7692956173711"><h4 class="sectiontitle">generate_series(start, stop, step)</h4><p id="EN-US_TOPIC_0000001445382202__p76926560379">Description: Generates a series of values, from <strong id="EN-US_TOPIC_0000001445382202__b146268317794045">start</strong> to <strong id="EN-US_TOPIC_0000001445382202__b160304037194045">stop</strong> with a step size of <strong id="EN-US_TOPIC_0000001445382202__b82911535294045">step</strong>.</p>
<p id="EN-US_TOPIC_0000001445382202__p56921356203716">Parameter type: int, bigint, or numeric</p>
<p id="EN-US_TOPIC_0000001445382202__p1669214568372">Return type: setof int, setof bigint, or setof numeric (same as the argument type)</p>
<p id="EN-US_TOPIC_0000001445382202__p8878171110428">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001445382202__screen12711185224411"><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></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">generate_series</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="o">-</span><span class="mi">2</span><span class="p">);</span>
<span class="w"> </span><span class="n">generate_series</span>
<span class="c1">-----------------</span>
<span class="w"> </span><span class="mi">5</span>
<span class="w"> </span><span class="mi">3</span>
<span class="w"> </span><span class="mi">1</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">generate_series</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="mi">6</span><span class="p">,</span><span class="o">-</span><span class="mi">5</span><span class="p">);</span>
<span class="w"> </span><span class="n">generate_series</span>
<span class="c1">-----------------</span>
<span class="p">(</span><span class="mi">0</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">generate_series</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span>
<span class="n">ERROR</span><span class="p">:</span><span class="w"> </span><span class="n">step</span><span class="w"> </span><span class="k">size</span><span class="w"> </span><span class="n">cannot</span><span class="w"> </span><span class="n">equal</span><span class="w"> </span><span class="n">zero</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="section" id="EN-US_TOPIC_0000001445382202__section53812059163715"><h4 class="sectiontitle">generate_series(start, stop, step interval)</h4><p id="EN-US_TOPIC_0000001445382202__p63811959183713">Description: Generates a series of values, from <strong id="EN-US_TOPIC_0000001445382202__b192457581894045">start</strong> to <strong id="EN-US_TOPIC_0000001445382202__b140532910294045">stop</strong> with a step size of <strong id="EN-US_TOPIC_0000001445382202__b158152061794045">step</strong>.</p>
<p id="EN-US_TOPIC_0000001445382202__p123811659123718">Parameter type: timestamp or timestamp with time zone</p>
<p id="EN-US_TOPIC_0000001445382202__p13812059173719">Return type: setof timestamp or setof timestamp with time zone (same as argument type)</p>
<p id="EN-US_TOPIC_0000001445382202__p8127151417420">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001445382202__screen95761151124512"><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="c1">-- this example relies on the date-plus-integer operator</span>
<span class="k">SELECT</span><span class="w"> </span><span class="k">current_date</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">s</span><span class="p">.</span><span class="n">a</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">dates</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">generate_series</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">14</span><span class="p">,</span><span class="mi">7</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">s</span><span class="p">(</span><span class="n">a</span><span class="p">);</span>
<span class="w"> </span><span class="n">dates</span>
<span class="c1">------------</span>
<span class="w"> </span><span class="mi">2017</span><span class="o">-</span><span class="mi">06</span><span class="o">-</span><span class="mi">02</span>
<span class="w"> </span><span class="mi">2017</span><span class="o">-</span><span class="mi">06</span><span class="o">-</span><span class="mi">09</span>
<span class="w"> </span><span class="mi">2017</span><span class="o">-</span><span class="mi">06</span><span class="o">-</span><span class="mi">16</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">generate_series</span><span class="p">(</span><span class="s1">'2008-03-01 00:00'</span><span class="p">::</span><span class="k">timestamp</span><span class="p">,</span><span class="w"> </span><span class="s1">'2008-03-04 12:00'</span><span class="p">,</span><span class="w"> </span><span class="s1">'10 hours'</span><span class="p">);</span>
<span class="w"> </span><span class="n">generate_series</span><span class="w"> </span>
<span class="c1">---------------------</span>
<span class="w"> </span><span class="mi">2008</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">01</span><span class="w"> </span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span>
<span class="w"> </span><span class="mi">2008</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">01</span><span class="w"> </span><span class="mi">10</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span>
<span class="w"> </span><span class="mi">2008</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">01</span><span class="w"> </span><span class="mi">20</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span>
<span class="w"> </span><span class="mi">2008</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">02</span><span class="w"> </span><span class="mi">06</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span>
<span class="w"> </span><span class="mi">2008</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">02</span><span class="w"> </span><span class="mi">16</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span>
<span class="w"> </span><span class="mi">2008</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">03</span><span class="w"> </span><span class="mi">02</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span>
<span class="w"> </span><span class="mi">2008</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">03</span><span class="w"> </span><span class="mi">12</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span>
<span class="w"> </span><span class="mi">2008</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">03</span><span class="w"> </span><span class="mi">22</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span>
<span class="w"> </span><span class="mi">2008</span><span class="o">-</span><span class="mi">03</span><span class="o">-</span><span class="mi">04</span><span class="w"> </span><span class="mi">08</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span>
<span class="p">(</span><span class="mi">9</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0049.html">Set Returning Functions</a></div>
</div>
</div>