9.25. 반환 기능 설정

이 섹션에서는 둘 이상의 행을 롤 토토할 수 있는 함수를 설명합니다. 이 클래스에서 가장 널리 사용되는 함수는 시리즈 생성 함수입니다.표 9.61그리고표 9.62. 기타 보다 전문화된 집합 롤 토토 기능은 이 설명서의 다른 부분에서 설명됩니다. 참조섹션 7.2.1.4여러 집합 롤 토토 함수를 결합하는 방법.

표 9.61. 시리즈 생성 함수

기능

설명

generate_series ( 시작 정수, 중지 정수 [, 단계 정수 ] ) → 정수 집합

generate_series ( 시작 비긴트, 중지 비긴트 [, 단계 비긴트 ] ) → setof bigint

generate_series ( 시작 숫자, 중지 숫자 [, 단계 숫자 ] ) → 숫자 집합

다음에서 일련의 값을 생성합니다.시작중지, 단계 크기는단계. 단계기본값은 1입니다.

generate_series ( 시작 타임스탬프, 중지 타임스탬프, 단계 간격 ) → 타임스탬프 집합

generate_series ( 시작 시간대가 포함된 타임스탬프, 중지 시간대가 포함된 타임스탬프, 단계 간격 ) → 시간대를 포함한 타임스탬프 집합

다음에서 일련의 값을 생성합니다.시작중지, 단계 크기는단계.


언제단계양수이면 0개의 행이 롤 토토됩니다.시작보다 큼중지. 반대로, 언제단계음수이면 0개의 행이 롤 토토됩니다.시작다음보다 작음중지. 입력이 다음과 같은 경우에도 0개의 행이 반환됩니다.NULL. 오류입니다.단계0이 됩니다. 몇 가지 예는 다음과 같습니다.

SELECT * FROM generate_series(2,4);
 generate_series
-----------------
               2
               3
               4
(3열)

SELECT * FROM generate_series(5,1,-2);
 generate_series
-----------------
               5
               3
               1
(3열)

SELECT * FROM generate_series(4,3);
 generate_series
-----------------
(0행)

SELECT generate_series(1.1, 4, 1.3);
 generate_series
-----------------
             1.1
             2.4
             3.7
(3열)

-- 이 예는 날짜와 정수 연산자를 사용합니다.
generate_series(0,14,7) AS s(a)에서 current_date + s.a AS 날짜를 선택하세요.
   날짜
------------
 2004-02-05
 2004-02-12
 2004-02-19
(3열)

SELECT * FROM generate_series('2008-03-01 00:00'::타임스탬프,
                              '2008-03-04 12:00', '10시간');
   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행)

표 9.62. 첨자 생성 함수

기능

설명

generate_subscripts ( 배열 모든 배열, 어두움 정수 ) → 정수 집합

의 유효한 아래 첨자로 구성된 시리즈를 생성합니다.어두움주어진 배열의 '번째 차원입니다.

generate_subscripts ( 배열 모든 배열, 어두움 정수, 역방향 부울 ) → 정수 집합

의 유효한 아래 첨자로 구성된 시리즈를 생성합니다.어두움17747_17788역방향이 true이면 계열을 역순으로 롤 토토합니다.


generate_subscripts은 주어진 배열의 지정된 차원에 대해 유효한 첨자 세트를 생성하는 편의 함수입니다. 요청된 차원이 없거나 입력이 다음과 같은 경우 배열에 대해 0개의 행이 반환됩니다.NULL. 몇 가지 예는 다음과 같습니다.

-- 기본 사용법:
SELECT generate_subscripts('NULL,1,NULL,2'::int[], 1) AS s;
 초
---
 1
 2
 3
 4
(4열)

-- 배열, 아래 첨자 및 아래 첨자 표시
-- 값에는 하위 쿼리가 필요합니다.
SELECT * FROM 배열;
         에
-------
 -1,-2
 100,200,300

함수가발신절 뒤에 다음이 붙음순서 포함, 아비긴트열은 함수의 출력 열에 추가됩니다. 이 열은 1부터 시작하여 함수 출력의 각 행에 대해 1씩 증가합니다. 이는 다음과 같은 함수를 반환하는 집합의 경우에 가장 유용합니다.unnest().

-- ORDINALITY를 사용하여 롤 토토 함수를 설정합니다.
SELECT * FROM pg_ls_dir('.') WITH ORDINALITY AS t(ls,n);
       ls | 엔
-----+------
 pg_serial |  1
 pg_twophase |  2
 postmaster.opts |  3
 pg_notify |  4
 postgresql.conf |  5
 pg_tblspc |  6
 로그파일 |  7
 베이스 |  8
 postmaster.pid |  9
 pg_ident.conf | 10
 글로벌 | 11
 pg_xact | 12
 pg_스냅샷 | 13
 pg_multixact | 14
 PG_버전 | 15
 pg_wal | 16
 pg_hba.conf | 17
 pg_stat_tmp | 18
 pg_subtrans | 19
(19행)

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.