forked from docs/doc-exports
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>
90 lines
8.0 KiB
HTML
90 lines
8.0 KiB
HTML
<a name="EN-US_TOPIC_0000001495622025"></a><a name="EN-US_TOPIC_0000001495622025"></a>
|
|
|
|
<h1 class="topictitle1">Subscript Generating Functions</h1>
|
|
<div id="body0000001495622025"><div class="section" id="EN-US_TOPIC_0000001495622025__section023994161213"><h4 class="sectiontitle">generate_subscripts(array anyarray, dim int)</h4><p id="EN-US_TOPIC_0000001495622025__p1123912421212">Description: Generates a series comprising the given array's subscripts.</p>
|
|
<p id="EN-US_TOPIC_0000001495622025__p423912419123">Return type: setof int</p>
|
|
<p id="EN-US_TOPIC_0000001495622025__p14661363289">Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001495622025__s46173b17dcff4f70a24609e9ef84294c"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">generate_subscripts</span><span class="p">(</span><span class="s1">'{NULL,1,NULL,2}'</span><span class="p">::</span><span class="nb">int</span><span class="p">[],</span><span class="w"> </span><span class="mi">1</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="w"> </span><span class="n">s</span><span class="w"> </span>
|
|
<span class="c1">---</span>
|
|
<span class="w"> </span><span class="mi">1</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">4</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_0000001495622025__section11731871128"><h4 class="sectiontitle">generate_subscripts(array anyarray, dim int, reverse boolean)</h4><p id="EN-US_TOPIC_0000001495622025__p0731177161214">Description: Generates a series comprising the given array's subscripts. When <strong id="EN-US_TOPIC_0000001495622025__b7958342879416">reverse</strong> is true, the series is returned in reverse order.</p>
|
|
<p id="EN-US_TOPIC_0000001495622025__p1873177171211">Return type: setof int</p>
|
|
<p id="EN-US_TOPIC_0000001495622025__p1213474422819">Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001495622025__screen14444847202811"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">generate_subscripts</span><span class="p">(</span><span class="s1">'{NULL,1,NULL,2}'</span><span class="p">::</span><span class="nb">int</span><span class="p">[],</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="k">TRUE</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="w"> </span><span class="n">s</span>
|
|
<span class="c1">---</span>
|
|
<span class="w"> </span><span class="mi">4</span>
|
|
<span class="w"> </span><span class="mi">3</span>
|
|
<span class="w"> </span><span class="mi">2</span>
|
|
<span class="w"> </span><span class="mi">1</span>
|
|
<span class="p">(</span><span class="mi">4</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001495622025__aa21194e25c8546d8a452d1818538607b"><strong id="EN-US_TOPIC_0000001495622025__b1629351549416">generate_subscripts</strong> is a function that generates the set of valid subscripts for the specified dimension of a given array. Zero rows are returned for arrays that do not have the requested dimension, or for NULL arrays (but valid subscripts are returned for NULL array elements). Example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001495622025__s83483b9cb1114440a065750abbfc9f49"><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></pre></div></td><td class="code"><div><pre><span></span><span class="c1">-- unnest a 2D array</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="n">unnest2</span><span class="p">(</span><span class="n">anyarray</span><span class="p">)</span>
|
|
<span class="k">RETURNS</span><span class="w"> </span><span class="k">SETOF</span><span class="w"> </span><span class="n">anyelement</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="err">$$</span>
|
|
<span class="k">SELECT</span><span class="w"> </span><span class="err">$</span><span class="mi">1</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">generate_subscripts</span><span class="p">(</span><span class="err">$</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="n">g1</span><span class="p">(</span><span class="n">i</span><span class="p">),</span>
|
|
<span class="w"> </span><span class="n">generate_subscripts</span><span class="p">(</span><span class="err">$</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="n">g2</span><span class="p">(</span><span class="n">j</span><span class="p">);</span>
|
|
<span class="err">$$</span><span class="w"> </span><span class="k">LANGUAGE</span><span class="w"> </span><span class="k">sql</span><span class="w"> </span><span class="k">IMMUTABLE</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">unnest2</span><span class="p">(</span><span class="nb">ARRAY</span><span class="p">[[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">],[</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">]]);</span>
|
|
<span class="w"> </span><span class="n">unnest2</span><span class="w"> </span>
|
|
<span class="c1">---------</span>
|
|
<span class="w"> </span><span class="mi">1</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">4</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_06_0049.html">Set Returning Functions</a></div>
|
|
</div>
|
|
</div>
|
|
|