이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대한 같은 페이지를 보려고 할 수 있습니다4rowRowRowRow2 ~ 사설 토토 사이트 핫 ~ Row6 ~ Row5 ~ Row9 ~ row5 ~ row9 ~ 사설 토토 사이트 핫 ~ row6 ~ row8_RowRowRowRowRow2 ~ 사설 토토 사이트 핫 ~ Row6 ~ Row5 ~ Row9 ~ row5 ~ row9 ~ 사설 토토 사이트 핫 ~ Row6 ~ 사설 토토 사이트 핫57버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

F.43. tablefunc - 사설 토토 사이트 반환하는 함수 (사설 토토 사이트및 기타)#

thetablefunc모듈에는 사설 토토 사이트 반환하는 다양한 기능 (즉, 여러 행)이 포함되어 있습니다. 이러한 기능은 여러 행을 반환하는 C 함수를 작성하는 방법의 예로 그 자체로 유용합니다.

이 모듈이 고려됩니다신뢰할 수있는Create현재 데이터베이스의 권한.

F.43.1. 제공된 기능#

사설 토토 사이트 F.33탁자모듈.

표 F.33. TableFunc기능

기능

설명

normal_rand(numvals Integer, 평균 float8, stddev float8) →setof float8

정규 분포 임의 값 세트를 생성합니다.

사설 토토 사이트(SQL 텍스트) →Setof Record

생산피벗 사설 토토 사이트행 이름 포함n값 열, 여기서n호출 쿼리에 지정된 행 유형에 따라 결정됩니다.

사설 토토 사이트n(SQL 텍스트) →setof table_사설 토토 사이트_n

생산피벗 사설 토토 사이트행 이름 포함n값 열.사설 토토 사이트2, 사설 토토 사이트3사설 토토 사이트4사전 정의되었지만 추가 생성사설 토토 사이트n아래 설명 된 기능.

사설 토토 사이트(source_sql 텍스트, Category_SQL 텍스트) →Setof Record

생산피벗 사설 토토 사이트두 번째 쿼리로 지정된 값 열이 있습니다.

사설 토토 사이트(SQL 텍스트, n Integer) →setof record

쓸모없는 버전사설 토토 사이트 (텍스트). 매개 변수n이제 값 열의 수는 항상 호출 쿼리에 의해 결정되므로 무시되었습니다.

Connectby(Relname 텍스트, keyid_fld 텍스트, parent_keyid_fld 텍스트[, Orderby_fld 텍스트],start_with 텍스트, max_depth 정수[, BRANCE_DELIM 텍스트]) →기록 설정

계층 적 트리 구조의 표현을 생성합니다.


F.43.1.1. normal_rand #

normal_rand (int numvals, float8 mean, float8 stddev) setof float8을 반환합니다

Normal_rand정규 분포 임의 값 세트를 생성합니다 (가우스 분포).

numvals함수에서 반환 할 값 수입니다.평균값은 값의 정규 분포의 평균이며stddev값의 정규 분포의 표준 편차입니다.

예를 들어,이 호출은 평균 5이고 표준 편차가 3 :의 1000 값을 요청합니다.

test =# select * from normal_rand (1000, 5, 3);
     normal_rand
------------------------
     1.56556322244898
     9.10040991424657
     5.36957140345079
   -0.369151492880995
    0.283600703686639
       .
       .
       .
     4.82992125404908
     9.71308014517282
     2.49639286969028
(1000 줄)

F.43.1.2. 사설 토토 사이트 (텍스트) #

사설 토토 사이트 (Text SQL)
crosstab (텍스트 SQL, int n)

the사설 토토 사이트함수는 생산에 사용됩니다Pivot디스플레이, 여기서 데이터는 다운이 아닌 페이지에 나열됩니다. 예를 들어,와 같은 데이터가있을 수 있습니다.

ROW1 VAL11
ROW1 VAL12
ROW1 VAL13
...
ROW2 VAL21
ROW2 VAL22
ROW2 VAL23
...

우리가 표시하고 싶은

ROW1 VAL11 VAL12 VAL13 ...
ROW2 VAL21 VAL22 VAL23 ...
...

19488_19494사설 토토 사이트함수는 첫 번째 방식으로 형식으로 원시 데이터를 생성하는 SQL 쿼리 인 텍스트 매개 변수를 가져 와서 두 번째 방식으로 형식으로 형식화 된 테이블을 생성합니다..

theSQL매개 변수는 소스 데이터 세트를 생성하는 SQL 문입니다. 이 진술은 하나를 반환해야합니다row_name열, 하나카테고리열, 1value열.n는 제공되면 무시되는 쓸모없는 매개 변수입니다 (이전에는 출력 값 열의 수와 일치해야했지만 이제는 호출 쿼리에 의해 결정됩니다)..

예를 들어, 제공된 쿼리는 다음과 같은 세트를 생성 할 수 있습니다.

ROW_NAME CAT 값
----------+-------+-------
  ROW1 CAT1 VAL1
  ROW1 CAT2 VAL2
  ROW1 CAT3 VAL3
  ROW1 CAT4 VAL4
  ROW2 CAT1 VAL5
  ROW2 CAT2 VAL6
  ROW2 CAT3 VAL7
  Row2 CAT4 VAL8

the사설 토토 사이트함수는 반환으로 선언 됨Setof Record, 출력 열의 실제 이름과 유형은에 정의되어야합니다.From전화 조항select진술, 예 :

선택 *에서 사설 토토 사이트 ( '...')에서 CT (row_name 텍스트, 카테고리_1 텍스트, 카테고리_2 텍스트);로 선택하십시오.

이 예제는 다음과 같은 세트를 생성합니다.

<== 값 열 ==
 row_name 카테고리 _1 카테고리 _2
----------+-----------+-------------
  ROW1 VAL1 VAL2
  Row2 Val5 Val6

theFrom조항은 출력을 하나로 정의해야합니다row_name열 (SQL 쿼리의 첫 번째 결과 열과 동일한 데이터 유형)과 N 열value열 (SQL 쿼리의 세 번째 결과 열과 동일한 데이터 유형). 원하는만큼의 출력 값 열을 설정할 수 있습니다. 출력 열의 이름은 귀하에게 달려 있습니다.

the사설 토토 사이트함수는 각 연속 입력 행 그룹에 대해 하나의 출력 행을 생성합니다.row_name값. 출력을 채 웁니다value열, 왼쪽에서 오른쪽으로value이 행의 필드. 그룹에 출력이있는 것보다 행이 적은 경우value열, 추가 출력 열에는 널로 채워집니다. 행이 더 많으면 추가 입력 행이 건너 뜁니다.

실제로 SQL 쿼리는 항상 지정해야합니다주문 1,2 주문입력 행이 올바르게 주문되어 있는지 확인합니다. 즉, 동일 한 값row_name는 함께 모여 행 내에서 정확하게 주문됩니다. 주석사설 토토 사이트자체는 쿼리 결과의 두 번째 열에주의를 기울이지 않습니다. 3 열 값이 페이지를 가로 질러 나타나는 순서를 제어하기 위해 주문해야합니다.

여기에 완전한 예가 있습니다 :

테이블 CT 작성 (ID Serial, RowId 텍스트, 속성 텍스트, 값 텍스트);
CT (rowid, 속성, 값) 값 ( 'test1', 'att1', 'val1')에 삽입;
CT (rowid, 속성, 값) 값 ( 'test1', 'att2', 'val2')에 삽입;
CT (rowid, 속성, 값) 값 ( 'test1', 'att3', 'val3')에 삽입;
CT (rowid, 속성, 값) 값 ( 'test1', 'att4', 'val4')에 삽입;
CT (rowid, 속성, 값) 값 ( 'test2', 'att1', 'val5')에 삽입;
CT (rowid, 속성, 값) 값 ( 'test2', 'att2', 'val6')에 삽입;
CT (rowid, 속성, 값) 값 ( 'test2', 'att3', 'val7')에 삽입;
CT (rowid, 속성, 값) 값 ( 'test2', 'att4', 'val8')에 삽입;

선택하다 *
사설 토토 사이트에서 (
  'Rowid, 속성, 값을 선택하십시오
   CT에서
   여기서 속성 = ''att2 ''또는 attribute = ''att3 ''
   1,2 '로 주문
CT (row_name 텍스트, 카테고리 _1 텍스트, 카테고리_2 텍스트, Category_3 텍스트);

 row_name | 카테고리 _1 | 카테고리 _2 | 카테고리 _3
-----------+------------+------------+------------
 test1 | Val2 | val3 |
 test2 | Val6 | val7 |
(2 줄)

항상 a를 쓰지 않아도됩니다.From정의에 연결된 원하는 출력 행 유형을 갖는 사용자 정의 crosstab 함수를 설정하여 출력 열을 정의하는 절입니다. 이것은 다음 섹션에 설명되어 있습니다. 또 다른 가능성은 필요한 것을 포함시키는 것입니다From보기 정의의 조항.

Note

참조\ 사설 토토 사이트view명령PSQL사설 토토 사이트 ().

F.43.1.3. 사설 토토 사이트n(텍스트) #

사설 토토 사이트n(텍스트 SQL)

the사설 토토 사이트n기능은 일반을위한 사용자 정의 포장지를 설정하는 방법의 예입니다사설 토토 사이트함수, 호출에 열 이름과 유형을 쓸 필요가 없도록select쿼리. 그만큼tablefunc모듈 포함사설 토토 사이트2, 사설 토토 사이트3사설 토토 사이트4, 출력 행 유형은로 정의됩니다.

유형 생성 tablefunc_crosstab_n as (
    row_name 텍스트,
    카테고리 _1 텍스트,
    카테고리 _2 텍스트,
        .
        .
        .
    카테고리_n 텍스트
);

따라서 이러한 기능은 입력 쿼리가 생성 될 때 직접 사용할 수 있습니다row_nameandvalue유형의 열텍스트, 2, 3 또는 4 개의 출력 값 열을 원합니다. 다른 모든면에서 그들은 일반에 대해 위에서 설명한대로 정확하게 행동합니다사설 토토 사이트기능.

예를 들어, 이전 섹션에 주어진 예제도로 작동합니다.

선택 *
사설 토토 사이트3에서 (
  'Rowid, 속성, 값을 선택하십시오
   CT에서
   여기서 속성 = ''att2 ''또는 attribute = ''att3 ''
   주문 1,2 ');

이 기능은 주로 예시 목적으로 제공됩니다. 기본에 따라 자신의 반환 유형 및 기능을 만들 수 있습니다사설 토토 사이트 ()함수. 그렇게하는 두 가지 방법이 있습니다 :

  • in의 예와 유사한 원하는 출력 열을 설명하는 복합 유형 생성Contrib/TableFunc/TableFunc-1.0.SQL. 그런 다음 고유 한 기능 이름을 정의하여 하나를 수락합니다텍스트매개 변수 및 반환setof your_type_name이지만 동일한 기본에 연결사설 토토 사이트C 함수. 예를 들어, 소스 데이터가의 행 이름을 생성하는 경우텍스트및 값float8, 그리고 당신은 5 개의 값 열을 원합니다 :

    생성 유형 my_crosstab_float8_5_cols as (
        my_row_name 텍스트,
        my_category_1 float8,
        my_category_2 float8,
        my_category_3 float8,
        my_category_4 float8,
        my_category_5 float8
    );
    
    기능 작성 또는 교체 사설 토토 사이트_float8_5_cols (텍스트)
        my_crosstab_float8_5_cols를 반환합니다
        '$ libdir/tablefunc', '사설 토토 사이트'Language C 안정적인 엄격;
  • useout반환 유형을 암시 적으로 정의하는 매개 변수. 동일한 예제도 다음 방식으로 수행 할 수 있습니다.

    함수 생성 또는 교체 사설 토토 사이트_float8_5_cols (
        텍스트로
        my_row_name 텍스트를 끄고
        out my_category_1 float8,
        out my_category_2 float8,
        out my_category_3 float8,
        out my_category_4 float8,
        out my_category_5 float8)
      Setof 레코드를 반환합니다
      '$ libdir/tablefunc', '사설 토토 사이트'Language C 안정적인 엄격;

F.43.1.4. crosstab (텍스트, 텍스트) #

crosstab (텍스트 source_sql, text category_sql)

단일 파라미터 형태의 주요 제한사설 토토 사이트각 값을 첫 번째 값 열에 삽입하여 그룹의 모든 값을 모두 처리하는 것입니다. 값 열이 특정 범주의 데이터에 해당하도록하려면 일부 그룹에 일부 카테고리에 대한 데이터가 없을 수 있으시면 잘 작동하지 않습니다. 2 파라미터 형태의사설 토토 사이트출력 열에 해당하는 명시 적 범주 목록을 제공 하여이 케이스를 처리합니다.

source_sql는 소스 데이터 세트를 생성하는 SQL 문입니다. 이 진술은 하나를 반환해야합니다row_name열, 하나카테고리열, 1value열. 또한 하나 이상이있을 수 있습니다추가열. 그만큼row_name열이 먼저 있어야합니다. 그만큼카테고리value열은 그 순서대로 마지막 두 열이어야합니다. 사이의 모든 열row_nameand카테고리추가. 그만큼추가열은 동일 한 모든 행에 대해 동일 할 것으로 예상row_namevalue.

예를 들어source_sql다음과 같은 세트를 생성 할 수 있습니다.

select row_name, extr.

 row_name extra_col cat 값
----------+------------+-----+-------
  ROW1 Extra1 CAT1 VAL1
  ROW1 Extra1 CAT2 VAL2
  ROW1 Extra1 CAT4 VAL4
  ROW2 Extra2 CAT1 VAL5
  Row2 Extra2 CAT2 VAL6
  ROW2 Extra2 CAT3 VAL7
  Row2 Extra2 CAT4 VAL8

Category_SQL는 범주 세트를 생성하는 SQL 문입니다. 이 진술은 하나의 열만 리턴해야합니다. 적어도 하나의 행을 생성해야합니다. 그렇지 않으면 오류가 생성됩니다. 또한 중복 값을 생성해서는 안됩니다. 그렇지 않으면 오류가 생성됩니다.Category_SQL

foo 주문에서 1 씩 고유 한 고양이를 선택하십시오.
    고양이
  -------
    CAT1
    cat2
    cat3
    CAT4

the사설 토토 사이트함수는 반환으로 선언 됨Setof Record, 따라서 출력 열의 실제 이름과 유형은에 정의되어야합니다.From전화 조항select진술, 예 :

선택 * From 사설 토토 사이트 ( '...', '...')
    CT (row_name 텍스트, 추가 텍스트, CAT1 텍스트, CAT2 텍스트, CAT3 텍스트, CAT4 텍스트);로

이것은 다음과 같은 결과를 생성합니다.

<== 값 열 ==
Row_name 추가 Cat1 Cat2 Cat3 Cat4
---------+-------+------+------+------+------
  ROW1 Extra1 VAL1 VAL2 VAL4
  Row2 Extra2 VAL5 VAL6 VAL7 VAL8

theFrom절은 적절한 데이터 유형의 적절한 출력 열을 정의해야합니다. 있는 경우n열의 열source_sql쿼리 결과, 첫 번째n-2 그들 중 첫 번째와 일치해야합니다n-2 출력 열. 나머지 출력 열에는의 마지막 열 유형이 있어야합니다.source_sqlQuery의 결과, 그리고에 행이있는 것만 큼 많은 것들이 있어야합니다Category_SQL쿼리 결과.

the사설 토토 사이트함수는 동일한 입력 행의 각 연속 그룹에 대해 하나의 출력 행을 생성합니다row_name값. 출력row_name열, 그리고추가열은 그룹의 첫 번째 행에서 복사됩니다. 출력value열은로 채워져 있습니다.value일치하는 행의 필드카테고리값. 행 인 경우카테고리의 출력과 일치하지 않습니다Category_SQL쿼리, ITSvalue무시됩니다. 그룹의 입력 행에 일치하는 범주가없는 출력 열에는 널로 채워집니다.

실제로source_sql쿼리는 항상 지정해야합니다주문별 주문동일 한 값을 확인하려면row_name그러나 그룹 내에서 카테고리를 주문하는 것은 중요하지 않습니다. 또한의 순서가 확실합니다.Category_SQL쿼리의 출력은 지정된 출력 열 순서와 일치합니다.

다음은 다음과 같은 두 가지 예입니다.

테이블 판매 생성 (int, 월 int, Qty int);
판매 값에 삽입 (2007, 1, 1000);
판매 가치에 삽입 (2007, 2, 1500);
판매 값에 삽입 (2007, 7, 500);
판매 가치에 삽입 (2007, 11, 1500);
판매 값에 삽입 (2007, 12, 2000);
판매 값에 삽입 (2008, 1, 1000);

사설 토토 사이트에서 *를 선택하십시오 (
  '선택 연도, 월, 영업 주문에서 1 ~ 1', 1 ',
  'generate_series (1,12) m에서 m을 선택하십시오'
) 처럼 (
  int,
  "Jan"int,
  "Feb"int,
  "mar"int,
  "apr"int,
  "5 월"int,
  "Jun"int,
  "7 월"int,
  "8 월"int,
  "Sep"int,
  "OCT"int,
  "11 월"int,
  "12 월"int
);
 해 | Jan | 2 월 | 3 월 | 4 월 | 5 월 | 6 월 | 7 월 | 8 월 | 9 월 | 10 월 | 11 월 | 12 월
------+------+------+-----+-----+-----+-----+-----+-----+-----+------+-------
 2007 | 1000 | 1500 |     |     |     |     | 500 |     |     |     | 1500 | 2000
 2008 | 1000 |      |     |     |     |     |     |     |     |     |      |
(2 줄)
테이블 CTH 만들기 (ROWID TEXT, ROWDT 타임 스탬프, 속성 텍스트, val 텍스트);
CTH 값에 삽입 ( 'test1', '01 2003 년 3 월 1 일', '온도', '42');
CTH 값에 삽입 ( 'test1', '01 2003 년 3 월 1 일', 'test_result', 'pass');
CTH 값에 삽입 ( 'test1', '01 2003 년 3 월 1 일', '볼트', '2.6987');
CTH 값에 삽입 ( 'test2', '02 2003 년 3 월 2 일', '온도', '53');
CTH 값에 삽입 ( 'test2', '2003 년 3 월 2 일', 'test_result', 'fail');
CTH 값에 삽입 ( 'test2', '02 2003 년 3 월 2 일', 'test_startDate', '01 2003 년 3 월 1 일');
Cth 값에 삽입 ( 'test2', '02 2003 년 3 월 2 일', '볼트', '3.1234');

사설 토토 사이트에서 *를 선택하십시오
(
  'select rowid, rowdt, attribute, val wrom cth order x 1',
  'Cth Order에서 1 x 1 씩 고유 한 속성을 선택하십시오'
))
처럼
(
       rowid 텍스트,
       Rowdt 타임 스탬프,
       온도 int4,
       test_result 텍스트,
       test_startdate timestamp,
       볼트 플로트 8
);
 Rowid |          Rowdt | 온도 | test_result |      test_startdate | 볼트
-------+--------------------------------------------------------------------------------------------------
 test1 | 2003 년 3 월 1 일 00:00:00 |          42 | 패스 |                          | 2.6987
 test2 | 2003 년 3 월 02 일 00:00:00 |          53 | 실패 | 2003 년 3 월 1 일 00:00:00 | 3.1234
(2 줄)

각 쿼리에서 결과 열 이름과 유형을 쓰지 않도록 사전 정의 된 함수를 만들 수 있습니다. 이전 섹션의 예를 참조하십시오. 이 형태의 기본 C 함수사설 토토 사이트이름이사설 토토 사이트_hash.

F.43.1.5. Connectby #

Connectby (텍스트 relname, 텍스트 keyid_fld, 텍스트 parent_keyid_fld
          [, text orderby_fld], text start_with, int max_depth
          [, text branch_delim])

theConnectby함수는 테이블에 저장된 계층 적 데이터의 표시를 생성합니다. 테이블에는 행을 고유하게 식별하는 키 필드와 각 행의 부모 (있는 경우)를 참조하는 부모 키 필드가 있어야합니다.Connectby모든 행에서 하위 트리를 표시 할 수 있습니다.

사설 토토 사이트 F.34매개 변수를 설명합니다.

표 F.34. Connectby매개 변수

매개 변수 설명
Relname 소스 관계의 이름
keyid_fld 키 필드의 이름
parent_keyid_fld 부모 키 필드의 이름
Orderby_fld (옵션)에 의해 형제 자매를 주문할 필드의 이름
start_with 시작할 행의 키 값
max_depth 하강 할 최대 깊이 또는 무제한 깊이의 경우 0
BRANCE_DELIM 분기 출력 (선택 사항)으로 키를 분리하는 문자열

키 및 부모 키 필드는 데이터 유형이 될 수 있지만 동일한 유형이어야합니다.start_with값은 키 필드의 유형에 관계없이 텍스트 문자열로 입력해야합니다.

theConnectby함수는 반환으로 선언 됨Setof Record, 따라서 출력 열의 실제 이름과 유형은에 정의되어야합니다.From호출 조항select진술, 예 :

Connectby에서 * 선택 * ( 'Connectby_tree', 'keyid', 'parent_keyid', 'pos', 'row2', 0, '~')).
    as t (keyid text, parent_keyid 텍스트, 레벨 int, 분기 텍스트, pos int);

처음 두 출력 열은 현재 행 키와 부모 행 키에 사용됩니다. 그들은 사설 토토 사이트의 키 필드의 유형과 일치해야합니다. 세 번째 출력 열은 트리의 깊이이며 유형이어야합니다정수. aBRANCE_DELIM매개 변수가 제공되었고, 다음 출력 열은 분기 디스플레이이며 유형이어야합니다텍스트. 마지막으로,Orderby_fld매개 변수가 제공되었고, 마지막 출력 열은 일련 번호이며 유형이어야합니다Integer.

theBranch출력 열은 현재 행에 도달하기 위해 촬영 한 키의 경로를 보여줍니다. 키는 지정된에 의해 분리됩니다BRANCE_DELIM문자열. 분기 디스플레이가 원하지 않으면 두 가지를 모두 생략하십시오BRANCE_DELIM출력 열 목록의 매개 변수 및 분기 열.

동일한 부모의 형제 자매 주문이 중요하다면Orderby_fld형제 자매를 주문할 필드를 지정하는 매개 변수. 이 필드는 정렬 가능한 데이터 유형 일 수 있습니다. 출력 열 목록에는 최종 정수 직렬 번호 열이 포함되어야합니다.Orderby_fld지정되어 있습니다.

테이블 및 필드 이름을 나타내는 매개 변수는 SQL 쿼리에 as-as-as입니다.Connectby내부적으로 생성됩니다. 따라서 이름이 혼합 된 경우 또는 특수 문자를 포함하는 경우 이중 인용문을 포함하십시오. 테이블 이름을 스키마 자격으로 평가해야 할 수도 있습니다.

대형 사설 토토 사이트에서는 부모 키 필드에 색인이 없으면 성능이 저하됩니다.

Branch_delim문자열은 키 값에 표시되지 않으며Connectby무한 회수 오류를 잘못보고 할 수 있습니다. ifBRANCE_DELIM제공되지 않음, 기본값~재귀 감지 목적으로 사용됩니다.

여기 예입니다.

테이블 작성 Connectby_tree (keyid 텍스트, parent_keyid 텍스트, pos int);

Connectby_tree 값에 삽입 ( 'Row1', Null, 0);
Connectby_tree 값에 삽입 ( 'Row2', 'Row1', 0);
Connectby_tree 값에 삽입 ( 'Row3', 'Row1', 0);
Connectby_tree 값에 삽입 ( 'Row4', 'Row2', 1);
Connectby_tree 값에 삽입 ( 'Row5', 'Row2', 0);
Connectby_tree 값에 삽입 ( 'Row6', 'Row4', 0);
Connectby_tree 값에 삽입 ( 'Row7', 'Row3', 0);
Connectby_tree 값에 삽입 ( 'Row8', 'Row6', 0);
Connectby_tree 값에 삽입 ( 'Row9', 'Row5', 0);

- Orderby_fld가없는 분기 (결과 순서는 보장되지 않음)
선택 *에서 Connectby ( 'Connectby_tree', 'keyid', 'parent_keyid', 'row2', 0, '~')를 선택하십시오.
 t (keyid text, parent_keyid 텍스트, 레벨 int, branch 텍스트);
 keyid | parent_keyid | 레벨 |       나뭇가지
-------+---------------+-------+--------------------
 Row2 |              |     0 | Row2
 Row4 | Row2 |     1 | Row2 ~ Row4
 Row6 | Row4 |     2 | Row2 ~ Row4 ~ Row6
 Row8 | Row6 |     3 | row2 ~ row4 ~ row6 ~ row8
 Row5 | Row2 |     1 | Row2 ~ Row5
 Row9 | Row5 |     2 | Row2 ~ row5 ~ row9
(6 줄)

- 분기 없음, Orderby_fld없이 (결과 순서는 보장되지 않습니다)
선택 *에서 Connectby ( 'Connectby_tree', 'keyid', 'parent_keyid', 'row2', 0)
 t (keyid text, parent_keyid 텍스트, 레벨 int);
 keyid | parent_keyid | 수준
-------+-------------+-------
 Row2 |              |     0
 Row4 | Row2 |     1
 Row6 | Row4 |     2
 Row8 | Row6 |     3
 Row5 | Row2 |     1
 Row9 | Row5 |     2
(6 줄)

- Orderby_fld와 함께 Branch (Row5가 Row4 앞에 오는 것을 주목하십시오)
Connectby에서 *를 선택하십시오 ( 'Connectby_tree', 'keyid', 'parent_keyid', 'pos', 'row2', 0, '~'))
 t (keyid text, parent_keyid 텍스트, 레벨 int, 분기 텍스트, pos int);
 keyid | parent_keyid | 레벨 |       지점 | POS
-------+-----------------------------------------------------
 Row2 |              |     0 | Row2 |   1
 Row5 | Row2 |     1 | Row2 ~ Row5 |   2
 Row9 | Row5 |     2 | Row2 ~ Row5 ~ Row9 |   3
 Row4 | Row2 |     1 | Row2 ~ Row4 |   4
 Row6 | Row4 |     2 | Row2 ~ Row4 ~ Row6 |   5
 Row8 | Row6 |     3 | row2 ~ row4 ~ row6 ~ row8 |   6
(6 줄)

- 지점없이, Orderby_fld (Row5가 Row4 전에 오는 것을 주목)
선택 *에서 Connectby ( 'Connectby_tree', 'keyid', 'parent_keyid', 'pos', 'row2', 0)
 t (keyid text, parent_keyid 텍스트, 레벨 int, pos int);
 keyid | parent_keyid | 레벨 | POS
-------+-------------+-------+-----
 Row2 |              |     0 |   1
 Row5 | Row2 |     1 |   2
 Row9 | Row5 |     2 |   3
 Row4 | Row2 |     1 |   4
 Row6 | Row4 |     2 |   5
 Row8 | Row6 |     3 |   6
(6 줄)

F.43.2. 작가#

Joe Conway