doc-exports/docs/dws/dev/dws_06_0336.html
Lu, Huayi ef0ada5a59 DWS DEV 20240716 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-11-02 09:07:47 +00:00

139 lines
16 KiB
HTML

<a name="EN-US_TOPIC_0000001510281965"></a><a name="EN-US_TOPIC_0000001510281965"></a>
<h1 class="topictitle1">Series Generating Functions</h1>
<div id="body32001227"><p id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_p188626181585"><strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b1879614425712">generate_series()</strong> returns a series-based set based on the specified start value (<strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b16265531776">start</strong>), end value (<strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b18587755675">stop</strong>), and step (<strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b357075715713">step</strong>).</p>
<p id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_p144549498014">If <strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b57531510481">step </strong>is a positive number and <strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b270071317816">start </strong>is greater than <strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b962618169814">stop</strong>, zero row is returned. If <strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b51592449811">step </strong>is a negative number and <strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b126018490810">start </strong>is less than <strong id="EN-US_TOPIC_0000001510281965__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_0000001510281965__en-us_topic_0000001445382202_b9710147365">step</strong> is <strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b113959101966">0</strong>, an error is reported.</p>
<div class="section" id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_section1744644917374"><h4 class="sectiontitle">generate_series(start, stop)</h4><p id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_p1544694983712">Description: Generates a series of values, from <strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b93571411294045">start</strong> to <strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b187251455094045">stop</strong>, the default step is <strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b1848114419317">1</strong>.</p>
<p id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_p5446144915377">Parameter type: int, bigint, or numeric</p>
<p id="EN-US_TOPIC_0000001510281965__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_0000001510281965__en-us_topic_0000001445382202_p1738093194217">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510281965__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_0000001510281965__en-us_topic_0000001445382202_section7692956173711"><h4 class="sectiontitle">generate_series(start, stop, step)</h4><p id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_p76926560379">Description: Generates a series of values, from <strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b146268317794045">start</strong> to <strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b160304037194045">stop</strong> with a step size of <strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b82911535294045">step</strong>.</p>
<p id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_p56921356203716">Parameter type: int, bigint, or numeric</p>
<p id="EN-US_TOPIC_0000001510281965__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_0000001510281965__en-us_topic_0000001445382202_p8878171110428">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510281965__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_0000001510281965__en-us_topic_0000001445382202_section53812059163715"><h4 class="sectiontitle">generate_series(start, stop, step interval)</h4><p id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_p63811959183713">Description: Generates a series of values, from <strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b192457581894045">start</strong> to <strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b140532910294045">stop</strong> with a step size of <strong id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_b158152061794045">step</strong>.</p>
<p id="EN-US_TOPIC_0000001510281965__en-us_topic_0000001445382202_p123811659123718">Parameter type: timestamp or timestamp with time zone</p>
<p id="EN-US_TOPIC_0000001510281965__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_0000001510281965__en-us_topic_0000001445382202_p8127151417420">Example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001510281965__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>