F.43. tablefunc - 토토 커뮤니티 반환하는 함수 (토토 커뮤니티및 기타)#

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

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

F.43.1. 제공된 기능#

토토 커뮤니티 F.32tablefunc모듈.

표 F.32. 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

생산 A피벗 토토 커뮤니티두 번째 쿼리로 지정된 값 열이 있습니다.

토토 커뮤니티(SQL 텍스트, n 정수) →Setof Record

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

Connectby(Relname 텍스트, keyid_fld 텍스트, parent_keyid_fld 텍스트[, Orderby_fld 텍스트],start_with 텍스트, max_depth 정수[, BRANCE_DELIM 텍스트]) →Setof Record

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


F.43.1.1. Normal_rand #

normal_rand (int numvals, float8 mean, float8 stddev) setsof 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 ...
...

the토토 커뮤니티함수는 첫 번째 방식으로 형식으로 원시 데이터를 생성하는 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진술, 예 :

선택 *에서 CROSSTAB ( '...')에서 CT (row_name 텍스트, 카테고리 _1 텍스트, Category_2 Text);로 선택하십시오.

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

<== 값 열 ==
 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쿼리. 그만큼탁자모듈 포함토토 커뮤니티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 ');

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

  • 예제와 유사한 원하는 출력 열을 설명하는 복합 유형 생성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 (텍스트 source_sql, text category_sql)

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

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

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

선택을 선택하십시오.

 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, 따라서 출력 열의 실제 이름과 유형은에 정의되어야합니다.호출 조항select진술, 예 :

선택 *에서 토토 커뮤니티 ( '...', '...')
    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쿼리는 항상 지정해야합니다1 주문동일 한 값을 확인하려면row_name함께 모입니다. 그러나 그룹 내에서 카테고리를 주문하는 것은 중요하지 않습니다. 또한의 순서가 확실합니다.Category_SQL쿼리의 출력은 지정된 출력 열 순서와 일치합니다.

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

테이블 판매 생성 (int, Month 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.33매개 변수를 설명합니다.

표 F.33. Connectby매개 변수

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

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

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

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

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

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

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

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

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

BRANCE_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

정정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면