| 젠 토토 : 문서 : 9.6 : 젠 토토 | |||
|---|---|---|---|
| postgresql : 문서 : 9.6 : 스포츠 토토info | PostgreSQL : 문서 : 9.6 : 추가 제공 토토 사이트 추천 | 부록 F. 추가 제공 모듈 | PostgreSQL : 문서 : 9.6 : 토토 사이트 순위 |
그테이블 기능모듈에는 테이블(즉, 여러 행)을 반환하는 다양한 함수가 포함되어 있습니다. 이러한 함수는 그 자체로도 유용하며 여러 행을 반환하는 C 함수를 작성하는 방법의 예로도 유용합니다.
표 F-31다음에서 제공하는 기능을 보여줍니다.테이블 기능모듈.
표 F-31.테이블 기능기능
| 기능 | 반품 | 설명 |
|---|---|---|
normal_rand(int numvals, float8 평균, float8 stddev) |
setof float8 | 정규 분포된 임의 값 세트를 생성 |
크로스탭(스포츠 토토 사이트 SQL) |
레코드 집합 | 생성"피벗 테이블"행 이름 + 포함N값 열, 여기서N호출 쿼리에 지정된 행 유형에 따라 결정됩니다. |
크로스탭N(스포츠 토토 사이트 SQL) |
setof table_crosstab_N | 생성"피벗 테이블"행 이름 + 포함N값 열.크로스탭2, 크로스탭3및크로스탭4사전 정의되어 있지만 추가로 생성할 수 있습니다.크로스탭N아래 설명된 기능 |
크로스탭(스포츠 토토 사이트 source_sql, 스포츠 토토 사이트 카테고리_sql) |
레코드 집합 | 생성"피벗 테이블"두 번째 쿼리에 의해 지정된 값 열 포함 |
크로스탭(스포츠 토토 사이트 sql, int N) |
레코드 집합 |
구식 버전 |
connectby(텍스트 relname, 텍스트 keyid_fld, 텍스트 parent_keyid_fld [, 텍스트 orderby_fld ], 텍스트 start_with, int max_le스포츠 토토 사이트th [, 텍스트 Branch_delim ]) |
레코드 집합 | 계층적 트리 구조의 표현을 생성 |
normal_randnormal_rand(int numvals, float8 평균, float8 stddev)는 setof float8을 반환합니다.
normal_rand정규 분포된 무작위 값 세트(가우스 분포)를 생성합니다.
숫자함수에서 반환할 값의 개수입니다.평균값의 정규 분포의 평균이고stddev값의 정규 분포의 표준 편차입니다.
예를 들어, 이 호출은 평균이 5이고 표준편차가 3인 1000개의 값을 요청합니다.
테스트=# SELECT * FROM Normal_rand(1000, 5, 3);
노멀_랜드
---------
1.56556322244898
9.10040991424657
5.36957140345079
-0.369151492880995
0.283600703686639
.
.
.
4.82992125404908
9.71308014517282
2.49639286969028
(1000행)크로스탭(스포츠 토토 사이트)크로스탭(스포츠 토토 사이트 SQL) 크로스탭(스포츠 토토 사이트 sql, int N)
그크로스탭함수는 생성에 사용됩니다."피벗"디스플레이, 여기서 데이터는 아래가 아닌 페이지 전체에 나열됩니다. 예를 들어 다음과 같은 데이터가 있을 수 있습니다.
row1 발11 행1 발12 행1 발13 ... 행2 발21 행2 발22 행2 발23 ...
다음과 같이 표시하고 싶습니다
row1 val11 val12 val13 ... 행2 발21 발22 발23 ... ...
그크로스탭함수는 첫 번째 방식으로 형식화된 원시 데이터를 생성하는 SQL 쿼리인 스포츠 토토 사이트 매개변수를 사용하고 두 번째 방식으로 형식화된 테이블을 생성합니다.
그sql매개변수는 데이터의 소스 세트를 생성하는 SQL 문입니다. 이 문은 하나를 반환해야 합니다.row_name열, 하나범주열, 그리고 하나값열.N은 더 이상 사용되지 않는 매개변수이며 제공되면 무시됩니다(이전에는 출력 값 열의 수와 일치해야 했지만 이제는 호출 쿼리에 의해 결정됩니다).
예를 들어 제공된 쿼리는 다음과 같은 집합을 생성할 수 있습니다.
row_name 고양이 값 --------+---------+------- 행1 cat1 발1 행1 고양이2 발2 행1 cat3 발3 행1 cat4 발4 행2 고양이1 발5 행2 고양이2 발6 행2 cat3 발7 행2 cat4 val8
그크로스탭함수가 반환되도록 선언되었습니다.레코드 집합, 따라서 출력 열의 실제 이름과 유형은발신소명절선택문, 예:
SELECT * FROM crosstab('...') AS ct(행_이름 스포츠 토토 사이트, 카테고리_1 스포츠 토토 사이트, 카테고리_2 스포츠 토토 사이트);
이 예는 다음과 같은 집합을 생성합니다:
<== 값 열 == 행_이름 카테고리_1 카테고리_2 ----------+------------+------------ 행1 값1 값2 행2 발5 발6
그발신절은 출력을 하나로 정의해야 합니다.row_name열(SQL 쿼리의 첫 번째 결과 열과 동일한 데이터 유형) 뒤에 N값열(모두 SQL 쿼리의 세 번째 결과 열과 동일한 데이터 유형) 원하는 만큼 출력 값 열을 설정할 수 있습니다. 출력 열의 이름은 귀하가 결정합니다.
그크로스탭함수는 동일한 입력 행의 연속된 그룹 각각에 대해 하나의 출력 행을 생성합니다.row_name값. 출력을 채웁니다.값열, 왼쪽에서 오른쪽으로,값이 행의 필드입니다. 그룹에 출력된 행보다 적은 행이 있는 경우값열, 추가 출력 열은 null로 채워집니다. 행이 더 있으면 추가 입력 행을 건너뜁니다.
실제로 SQL 쿼리는 항상 다음을 지정해야 합니다.1,2순으로 주문입력 행이 올바르게 정렬되었는지, 즉 동일한 값이 있는지 확인하기 위해row_name이 함께 모여 행 내에서 올바르게 정렬됩니다. 참고하세요크로스탭자체는 쿼리 결과의 두 번째 열에 전혀 주의를 기울이지 않습니다. 페이지 전체에 세 번째 열 값이 표시되는 순서를 제어하기 위해 정렬할 뿐입니다.
다음은 완전한 예입니다:
CREATE TABLE ct(id SERIAL, rowid TEXT, 속성 TEXT, 값 TEXT);
INSERT INTO ct(rowid, 속성, 값) VALUES('test1','att1','val1');
INSERT INTO ct(rowid, 속성, 값) VALUES('test1','att2','val2');
INSERT INTO ct(rowid, 속성, 값) VALUES('test1','att3','val3');
INSERT INTO ct(rowid, 속성, 값) VALUES('test1','att4','val4');
INSERT INTO ct(rowid, 속성, 값) VALUES('test2','att1','val5');
INSERT INTO ct(rowid, 속성, 값) VALUES('test2','att2','val6');
INSERT INTO ct(rowid, 속성, 값) VALUES('test2','att3','val7');
INSERT INTO ct(rowid, 속성, 값) VALUES('test2','att4','val8');
선택하다 *
크로스탭에서(
'rowid, 속성, 값 선택
CT에서
여기서 속성 = ''att2'' 또는 속성 = ''att3''
1,2' 단위로 주문하세요)
AS ct(행_이름 스포츠 토토 사이트, 카테고리_1 스포츠 토토 사이트, 카테고리_2 스포츠 토토 사이트, 카테고리_3 스포츠 토토 사이트);
행_이름 | 카테고리_1 | 카테고리_2 | 카테고리_3
----------+------------+------------+------------
테스트1 | 발2 | 발3 |
테스트2 | 발6 | 발7 |
(2행)
항상 다음을 작성하지 않아도 됩니다.발신절은 원하는 출력 행 유형이 해당 정의에 연결된 사용자 정의 크로스탭 함수를 설정하여 출력 열을 정의합니다. 이에 대해서는 다음 섹션에서 설명합니다. 또 다른 가능성은 필수를 포함하는 것입니다.발신뷰 정의의 절.
참고:또한 참조\crosstabview명령 입력psql, 다음과 유사한 기능을 제공합니다.
크로스탭().
크로스탭N(스포츠 토토 사이트)크로스탭N(스포츠 토토 사이트 SQL)
그크로스탭N함수는 일반용 사용자 정의 래퍼를 설정하는 방법의 예입니다.크로스탭함수이므로 호출 시 열 이름과 유형을 작성할 필요가 없습니다.선택질의. 그만큼테이블펑크모듈에는크로스탭2, 크로스탭3및크로스탭4, 출력 행 유형은 다음과 같이 정의됩니다.
CREATE TYPE tablefunc_crosstab_N AS(
행_이름 TEXT,
카테고리_1 스포츠 토토 사이트,
카테고리_2 스포츠 토토 사이트,
.
.
.
카테고리_N TEXT
);
따라서 이러한 함수는 입력 쿼리가 생성될 때 직접 사용할 수 있습니다.row_name그리고값유형의 열스포츠 토토 사이트, 2개, 3개 또는 4개의 출력 값 열이 필요합니다. 다른 모든 방법에서는 위에서 설명한 일반 사항과 정확히 동일하게 작동합니다.크로스탭함수.
예를 들어, 이전 섹션에 제공된 예는 다음과 같이 작동합니다.
선택 * 크로스탭3( 'rowid, 속성, 값 선택 CT에서 여기서 속성 = ''att2'' 또는 속성 = ''att3'' 1,2' 단위로 주문);
이 기능은 주로 설명 목적으로 제공됩니다. 기본을 기반으로 자신만의 반환 유형과 함수를 만들 수 있습니다.크로스탭()함수. 이를 수행하는 방법에는 두 가지가 있습니다.
다음의 예와 유사하게 원하는 출력 열을 설명하는 복합 유형을 생성합니다.contrib/tablefunc/tablefunc--1.0.sql. 그런 다음 하나를 허용하는 고유한 함수 이름을 정의합니다.스포츠 토토 사이트매개변수 및 반환setof your_type_name, 그러나 동일한 기본에 연결크로스탭C 함수. 예를 들어 소스 데이터가 다음과 같은 행 이름을 생성하는 경우스포츠 토토 사이트및 다음과 같은 값float8, 5개의 값 열이 필요합니다.
CREATE TYPE 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
);
함수 생성 또는 교체 crosstab_float8_5_cols(text)
my_crosstab_float8_5_cols 세트를 반환합니다.
AS '$libdir/tablefunc','crosstab' LANGUAGE C STABLE STRICT;사용아웃매개변수를 사용하여 반환 유형을 암시적으로 정의합니다. 동일한 예를 다음과 같이 수행할 수도 있습니다.
함수 생성 또는 교체 crosstab_float8_5_cols(
스포츠 토토 사이트로,
OUT 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)
RETURNS 레코드 세트
AS '$libdir/tablefunc','crosstab' LANGUAGE C STABLE STRICT;크로스탭(스포츠 토토 사이트, 스포츠 토토 사이트)크로스탭(스포츠 토토 사이트 source_sql, 스포츠 토토 사이트 카테고리_sql)
단일 매개변수 형식의 주요 제한사항크로스탭은 그룹의 모든 값을 동일하게 처리하여 각 값을 사용 가능한 첫 번째 열에 삽입한다는 것입니다. 값 열이 특정 데이터 범주에 해당하도록 하려고 하는데 일부 그룹에 일부 범주에 대한 데이터가 없을 수 있는 경우에는 제대로 작동하지 않습니다. 의 2개 매개변수 형식크로스탭출력 열에 해당하는 범주의 명시적인 목록을 제공하여 이 경우를 처리합니다.
source_sql은 데이터의 소스 세트를 생성하는 SQL 문입니다. 이 문은 하나를 반환해야 합니다.row_name열, 하나범주열, 그리고 하나값열. 하나 이상이 있을 수도 있습니다."추가"열. 그만큼row_name열이 먼저 와야 합니다. 그만큼범주그리고값열은 순서대로 마지막 두 열이어야 합니다. 사이의 모든 열row_name그리고범주다음과 같이 취급됩니다."추가". 그만큼"추가"열은 동일한 모든 행에 대해 동일할 것으로 예상됩니다.row_name값.
예를 들어,source_sql다음과 같은 세트를 생성할 수 있습니다:
SELECT row_name, extra_col, cat, value FROM foo ORDER BY 1; row_name extra_col 고양이 값 ----------+------------+------+--------- row1 extra1 cat1 val1 행1 추가1 cat2 val2 행1 추가1 cat4 val4 row2 extra2 cat1 val5 row2 extra2 cat2 val6 row2 extra2 cat3 val7 row2 extra2 cat4 val8
category_sql은 카테고리 세트를 생성하는 SQL 문입니다. 이 문은 하나의 열만 반환해야 합니다. 최소한 하나의 행을 생성해야 합니다. 그렇지 않으면 오류가 생성됩니다. 또한 중복된 값을 생성해서는 안 됩니다. 그렇지 않으면 오류가 발생합니다.category_sql다음과 같을 수 있습니다:
foo ORDER BY 1에서 고유한 고양이 선택;
고양이
-------
고양이1
고양이 2
고양이3
고양이4
그크로스탭함수가 반환되도록 선언되었습니다.레코드 세트, 따라서 출력 열의 실제 이름과 유형은발신소명절선택문, 예:
SELECT * FROM 크로스탭('...', '...')
AS ct(row_name 스포츠 토토 사이트, 추가 스포츠 토토 사이트, cat1 스포츠 토토 사이트, cat2 스포츠 토토 사이트, cat3 스포츠 토토 사이트, cat4 스포츠 토토 사이트);
이것은 다음과 같은 결과를 낳습니다:
<== 값 열 == row_name 추가 cat1 cat2 cat3 cat4 ---------+-------+------+------+------+------ 행1 추가1 발1 발2 발4 row2 extra2 val5 val6 val7 val8
그발신절은 적절한 데이터 유형의 출력 열의 적절한 수를 정의해야 합니다. 있는 경우N열source_sql쿼리 결과, 첫 번째N-그 중 2개는 첫 번째와 일치해야 합니다N-2 출력 열. 나머지 출력 열은의 마지막 열 유형을 가져야 합니다.source_sql쿼리의 결과이며, 쿼리의 행 수와 정확히 일치해야 합니다.category_sql쿼리 결과입니다.
그크로스탭함수는 동일한 입력 행의 연속된 각 그룹에 대해 하나의 출력 행을 생성합니다.row_name값. 출력row_name열 및 기타"추가"열은 그룹의 첫 번째 행에서 복사됩니다. 출력값열은 다음으로 채워집니다.값일치하는 행의 필드범주값. 행의 경우범주다음의 출력과 일치하지 않습니다.category_sql쿼리, 그값무시됩니다. 그룹의 어떤 입력 행에도 일치하는 범주가 없는 출력 열은 null로 채워집니다.
실제로는source_sql쿼리는 항상 지정해야 함1개씩 주문값이 동일한지 확인하기 위해행_이름함께 모였습니다. 그러나 그룹 내 카테고리의 순서는 중요하지 않습니다. 또한,의 순서가 올바른지 확인하는 것이 중요합니다.category_sql쿼리의 출력이 지정된 출력 열 순서와 일치합니다.
다음은 두 가지 완전한 예입니다:
판매 테이블 생성(연도 정수, 월 정수, 수량 정수); 판매액에 삽입(2007, 1, 1000); 판매액에 삽입(2007, 2, 1500); 판매액에 삽입(2007, 7, 500); 판매액에 삽입(2007, 11, 1500); 판매액에 삽입(2007, 12, 2000); 판매액에 삽입(2008, 1, 1000); 크로스탭에서 *를 선택합니다( '판매주문서에서 연도, 월, 수량을 1씩 선택', 'generate_series(1,12) m에서 m을 선택하세요.' ) 처럼 ( 연도 정수, "Jan" 정수, "2월" 정수, "3월" int, "4월" 정수, "5월" 정수, "준" 정수, "7월" int, "8월" 정수, "9월" 정수, "10월" 정수, "11월" int, "12월" 정수 ); 년 | 1월 | 2월 | 3월 | 4월 | 5월 | 준 | 7월 | 8월 | 9월 | 10월 | 11월 | 12월 ------+------+------+------+------+-----+------+------+------+------+------+------+------ 2007년 | 1000 | 1500 | | | | | 500 | | | | 1500 | 2000 2008 | 1000 | | | | | | | | | | | (2행)
CREATE TABLE cth(rowid 스포츠 토토 사이트, rowdt 타임스탬프, 속성 스포츠 토토 사이트, val 스포츠 토토 사이트);
INSERT INTO cth VALUES('test1','2003년 3월 1일','온도','42');
INSERT INTO cth VALUES('test1','2003년 3월 1일','test_result','PASS');
INSERT INTO cth VALUES('test1','2003년 3월 1일','volts','2.6987');
INSERT INTO cth VALUES('test2','2003년 3월 2일','온도','53');
INSERT INTO cth VALUES('test2','2003년 3월 2일','test_result','FAIL');
INSERT INTO cth VALUES('test2','2003년 3월 2일','test_startdate','2003년 3월 01일');
INSERT INTO cth VALUES('test2','2003년 3월 2일','volts','3.1234');
SELECT * FROM 크로스탭
(
'SELECT rowid, rowdt, 속성, 값 FROM cth ORDER BY 1',
'Cth ORDER BY 1에서 DISTINCT 속성 선택'
)
처럼
(
로우이드 스포츠 토토 사이트,
rowdt 타임스탬프,
온도 정수4,
테스트_결과 스포츠 토토 사이트,
test_startdate 타임스탬프,
볼트 float8
);
로우이드 | 행트 | 온도 | 테스트_결과 | 테스트_시작일 | 볼트
--------+---------------+------------+-------------+---------------+---------
테스트1 | 2003년 3월 1일 토요일 00:00:00 | 42 | 패스 | | 2.6987
테스트2 | 2003년 3월 2일 일요일 00:00:00 | 53 | 실패 | 2003년 3월 1일 토요일 00:00:00 | 3.1234
(2행)
각 쿼리에서 결과 열 이름과 유형을 작성하지 않아도 되도록 사전 정의된 함수를 생성할 수 있습니다. 이전 섹션의 예를 참조하세요. 이 형식의 기본 C 함수는크로스탭이름이 지정됨crosstab_hash.
커넥트바이connectby(스포츠 토토 사이트 relname, 스포츠 토토 사이트 keyid_fld, 스포츠 토토 사이트 parent_keyid_fld
[, 스포츠 토토 사이트 orderby_fld ], 스포츠 토토 사이트 start_with, int max_length
[, 스포츠 토토 사이트 Branch_delim ])
그커넥트바이함수는 테이블에 저장된 계층적 데이터를 표시합니다. 테이블에는 행을 고유하게 식별하는 키 필드와 각 행의 상위(있는 경우)를 참조하는 상위 키 필드가 있어야 합니다.커넥트비모든 행에서 내림차순으로 하위 트리를 표시할 수 있습니다.
표 F-32매개변수를 설명합니다.
표 F-32.커넥트비매개변수
| 매개변수 | 설명 |
|---|---|
| relname | 소스 관계의 이름 |
| keyid_fld | 키 필드 이름 |
| parent_keyid_fld | 상위 키 필드 이름 |
| orderby_fld | 형제를 정렬할 필드 이름(선택 사항) |
| start_with | 시작할 행의 키 값 |
| 최대_깊이 | 하강할 최대 깊이 또는 무제한 깊이의 경우 0 |
| branch_delim | 분기 출력에서 키를 구분하는 문자열(선택 사항) |
키 및 상위 키 필드는 모든 데이터 유형이 될 수 있지만 동일한 유형이어야 합니다. 참고하세요start_with값은 키 필드 유형에 관계없이 스포츠 토토 사이트 문자열로 입력되어야 합니다.
그커넥트바이함수가 반환되도록 선언되었습니다.레코드 집합, 따라서 출력 열의 실제 이름과 유형은발신소명절선택문, 예:
SELECT * FROM connectby('connectby_tree', 'keyid', 'parent_keyid', 'pos', 'row2', 0, '~')
AS t(keyid 스포츠 토토 사이트, parent_keyid 스포츠 토토 사이트, 레벨 int, 분기 스포츠 토토 사이트, pos int);
처음 두 개의 출력 열은 현재 행의 키와 상위 행의 키에 사용됩니다. 테이블의 키 필드 유형과 일치해야 합니다. 세 번째 출력 열은 트리의 깊이이며 유형이어야 합니다.정수. 만약에branch_delim매개변수가 지정되었습니다. 다음 출력 열은 분기 표시이며 유형이어야 합니다.스포츠 토토 사이트. 마지막으로 만약에orderby_fld매개변수가 지정되었습니다. 마지막 출력 열은 일련 번호이며 유형이어야 합니다.정수.
그"분기"출력 열에는 현재 행에 도달하기 위해 사용된 키의 경로가 표시됩니다. 키는 지정된 값으로 구분됩니다.branch_delim문자열. 분기 표시를 원하지 않으면 다음을 모두 생략하십시오.branch_delim매개변수 및 출력 열 목록의 분기 열입니다.
같은 부모의 형제자매 순서가 중요하다면 다음을 포함하세요.orderby_fld동위 항목을 정렬할 필드를 지정하는 매개변수입니다. 이 필드는 정렬 가능한 모든 데이터 유형이 될 수 있습니다. 출력 열 목록은 다음과 같은 경우에만 최종 정수 일련 번호 열을 포함해야 합니다.orderby_fld지정되었습니다.
테이블 및 필드 이름을 나타내는 매개변수는 있는 그대로 SQL 쿼리에 복사됩니다.커넥트비내부적으로 생성됩니다. 따라서 이름에 대소문자가 혼합되어 있거나 특수 문자가 포함된 경우 큰따옴표를 포함하십시오. 테이블 이름을 스키마로 한정해야 할 수도 있습니다.
큰 테이블에서는 상위 키 필드에 색인이 없으면 성능이 저하됩니다.
중요한 것은branch_delim문자열은 어떤 키 값에도 나타나지 않습니다. else커넥트비무한 재귀 오류를 잘못 보고할 수 있습니다. 만약에 참고하세요branch_delim제공되지 않음, 기본값은~재귀 감지 목적으로 사용됩니다.
다음은 예입니다:
CREATE TABLE connectby_tree(keyid 스포츠 토토 사이트, parent_keyid 스포츠 토토 사이트, pos int);
INSERT INTO connectby_tree VALUES('row1',NULL, 0);
INSERT INTO connectby_tree VALUES('row2','row1', 0);
INSERT INTO connectby_tree VALUES('row3','row1', 0);
INSERT INTO connectby_tree VALUES('row4','row2', 1);
INSERT INTO connectby_tree VALUES('row5','row2', 0);
INSERT INTO connectby_tree VALUES('row6','row4', 0);
INSERT INTO connectby_tree VALUES('row7','row3', 0);
INSERT INTO connectby_tree VALUES('row8','row6', 0);
INSERT INTO connectby_tree VALUES('row9','row5', 0);
-- 브랜치 있음, orderby_fld 없음(결과 순서는 보장되지 않음)
SELECT * FROM connectby('connectby_tree', 'keyid', 'parent_keyid', 'row2', 0, '~')
AS t(키 ID 스포츠 토토 사이트, parent_keyid 스포츠 토토 사이트, 레벨 int, 분기 스포츠 토토 사이트);
키ID | 부모_키ID | 수준 | 나뭇가지
--------+---------------+-------+---------
행2 | | 0 | 행 2
행4 | 행2 | 1 | 2행~4행
행 6 | 행4 | 2 | 행2~행4~행6
행8 | 행 6 | 3 | 행2~행4~행6~8행
행 5 | 행2 | 1 | 2행~5행
행9 | 행 5 | 2 | 2행~5행~9행
(6열)
-- 분기 없음, orderby_fld 없음(결과 순서는 보장되지 않음)
SELECT * FROM connectby('connectby_tree', 'keyid', 'parent_keyid', 'row2', 0)
AS t(keyid 스포츠 토토 사이트, parent_keyid 스포츠 토토 사이트, level int);
키ID | 부모_키ID | 수준
--------+---------------+-------
행2 | | 0
행4 | 행2 | 1
행 6 | 행4 | 2
행8 | 행 6 | 3
행 5 | 행2 | 1
행9 | 행 5 | 2
(6열)
-- 분기 포함, orderby_fld 포함(row5가 row4 앞에 옴에 유의)
SELECT * FROM connectby('connectby_tree', 'keyid', 'parent_keyid', 'pos', 'row2', 0, '~')
AS t(keyid 스포츠 토토 사이트, parent_keyid 스포츠 토토 사이트, 레벨 int, 분기 스포츠 토토 사이트, pos int);
키ID | 부모_키ID | 수준 | 지점 | 포스
------+---------------+-------+---------+-----
행2 | | 0 | 행2 | 1
행 5 | 행2 | 1 | 2행~5행 | 2
행9 | 행 5 | 2 | 행2~행5~행9 | 3
행4 | 행2 | 1 | 2행~4행 | 4
행 6 | 행4 | 2 | 행2~행4~행6 | 5
행8 | 행 6 | 3 | 행2~행4~행6~8행 | 6
(6열)
-- 분기 없음, orderby_fld 사용(row5가 row4 앞에 옴에 유의)
SELECT * FROM connectby('connectby_tree', 'keyid', 'parent_keyid', 'pos', 'row2', 0)
AS t(keyid 스포츠 토토 사이트, parent_keyid 스포츠 토토 사이트, level int, pos int);
키ID | 부모_키ID | 수준 | 포스
------+---------------+---------+-----
행2 | | 0 | 1
행 5 | 행2 | 1 | 2
행9 | 행 5 | 2 | 3
행4 | 행2 | 1 | 4
행 6 | 행4 | 2 | 5
행8 | 행 6 | 3 | 6
(6행)조 콘웨이