<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 9.24\. 返回集合的函數 本節描述那些可能返回多于一行的函數。在這個類中最廣泛使用的函數是序列號生成函數, 如[Table 9-49](#calibre_link-2314)和[Table 9-50](#calibre_link-2151)所述。 另外,更專業的集合返回函數在這個手冊的其他地方描述。 **Table 9-49\. 序列號生成函數** | 函數 | 參數類型 | 返回類型 | 描述 | | --- | --- | --- | --- | | ``generate_series(```start`, `stop`) | `int` 或 `bigint` | `setof int` 或 `setof bigint` (與參數類型相同) | 生成一個數值序列,從`start`到`stop`,步長為 1 。 | | ``generate_series(```start`, `stop`, `step`) | `int` 或 `bigint` | `setof int` 或 `setof bigint` (與參數類型相同) | 生成一個數值序列,從`start`到`stop`,步長為`step`。 | | ``generate_series(```start`, `stop`, `step` `interval`) | `timestamp` 或 `timestamp with time zone` | `setof timestamp` 或 `setof timestamp with time zone` (與參數類型相同) | 生成一個數值序列,從`start`到`stop`,步長為`step`。 | 如果`step`是正數且`start`大于`stop`, 那么返回零行。相反,如果`step`是負數且`start` 小于`stop`,那么也返回零行。如果輸入是`NULL`,同樣產生零行。 `step`為零則是一個錯誤。下面是一些例子: ``` SELECT * FROM generate_series(2,4); generate_series ----------------- 2 3 4 (3 rows) SELECT * FROM generate_series(5,1,-2); generate_series ----------------- 5 3 1 (3 rows) SELECT * FROM generate_series(4,3); generate_series ----------------- (0 rows) -- this example relies on the date-plus-integer operator SELECT current_date + s.a AS dates FROM generate_series(0,14,7) AS s(a); dates ------------ 2004-02-05 2004-02-12 2004-02-19 (3 rows) SELECT * FROM generate_series('2008-03-01 00:00'::timestamp, '2008-03-04 12:00', '10 hours'); generate_series --------------------- 2008-03-01 00:00:00 2008-03-01 10:00:00 2008-03-01 20:00:00 2008-03-02 06:00:00 2008-03-02 16:00:00 2008-03-03 02:00:00 2008-03-03 12:00:00 2008-03-03 22:00:00 2008-03-04 08:00:00 (9 rows) ``` **Table 9-50\. 下標生成函數** | 函數 | 返回類型 | 描述 | | --- | --- | --- | | ``generate_subscripts(```array anyarray`, `dim int`) | `setof int` | 生成一系列包括給定數組的下標。 | | ``generate_subscripts(```array anyarray`, `dim int`, `reverse boolean`) | `setof int` | 生成一系列包括給定數組的下標。當`reverse`為真時, 該系列則以相反的順序返回。 | `generate_subscripts`是一個為給定數組中的指定維度生成有效下標集的便利函數。 如果數組中沒有所請求的維度或者NULL數組,返回0行(但是會給數組元素為空的返回有效下標)。 下面一些例子: ``` -- basic usage SELECT generate_subscripts('{NULL,1,NULL,2}'::int[], 1) AS s; s --- 1 2 3 4 (4 rows) -- presenting an array, the subscript and the subscripted -- value requires a subquery SELECT * FROM arrays; a -------------------- {-1,-2} {100,200,300} (2 rows) SELECT a AS array, s AS subscript, a[s] AS value FROM (SELECT generate_subscripts(a, 1) AS s, a FROM arrays) foo; array | subscript | value ---------------+-----------+------- {-1,-2} | 1 | -1 {-1,-2} | 2 | -2 {100,200,300} | 1 | 100 {100,200,300} | 2 | 200 {100,200,300} | 3 | 300 (5 rows) -- unnest a 2D array CREATE OR REPLACE FUNCTION unnest2(anyarray) RETURNS SETOF anyelement AS $$ select $1[i][j] from generate_subscripts($1,1) g1(i), generate_subscripts($1,2) g2(j); $$ LANGUAGE sql IMMUTABLE; CREATE FUNCTION postgres=# SELECT * FROM unnest2(ARRAY[[1,2],[3,4]]); unnest2 --------- 1 2 3 4 (4 rows) ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看