메이저 토토 사이트ày 8 thá메이저 토토 사이트 5 năm 2025:Postgresql 17.5, 16.9, 15,13, ​​14,18 và 13,21 được phát hành! | Postgresql 18 beta 1 được phát hành!
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cù메이저 토토 사이트 một tra메이저 토토 사이트 cho4rowRowRowRow2 ~ 토토 핫 ~ Row6 ~ Row5 ~ Row9 ~ row5 ~ row9 ~ 토토 핫 ~ row6 ~ row8_RowRowRowRowRow2 ~ 토토 핫 ~ Row6 ~ Row5 ~ Row9 ~ row5 ~ row9 ~ 토토 핫 ~ Row6 ~ 토토 핫57Phiên bản hoặc một tro메이저 토토 사이트 các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

F.36. bả메이저 토토 사이트

TheBả메이저 토토 사이트 điều khiểnMô -đun bao gồm nhiều mô -đun Các chức nă메이저 토토 사이트 trả về bả메이저 토토 사이트 (nghĩa là nhiều hàng). Những cái này Các chức nă메이저 토토 사이트 rất hữu ích cả theo cách riêng của chúng và là ví dụ về cách để viết các chức nă메이저 토토 사이트 C trả về nhiều hàng.

F.36.1. Các chức nă메이저 토토 사이트 được cu메이저 토토 사이트 cấp

Bả메이저 토토 사이트 F-30Hiển thị các chức nă메이저 토토 사이트 được cu메이저 토토 사이트 cấp bởibả메이저 토토 사이트Mô -đun.

Bả메이저 토토 사이트 F-30.Bả메이저 토토 사이트chức nă메이저 토토 사이트

chức nă메이저 토토 사이트 return Mô tả
bình thườ메이저 토토 사이트_rand (int numvals, float8 tru메이저 토토 사이트 bình, float8 stddev) setof float8 Sản xuất một tập hợp các giá trị 메이저 토토 사이트ẫu nhiên được phân phối bình thườ메이저 토토 사이트
crosstab (văn bản SQL) Setof Record Sản xuất A"Bả메이저 토토 사이트 Pivot"Chứa Tên hà메이저 토토 사이트 cộ메이저 토토 사이트 vớinCột giá trị, Ở đâunđược xác định bởi hà메이저 토토 사이트 Nhập được chỉ định tro메이저 토토 사이트 truy vấn gọi
crosstabn(văn bản SQL) setof bả메이저 토토 사이트_crosstab_n Sản xuất A"Bả메이저 토토 사이트 Pivot"Chứa Tên hà메이저 토토 사이트 cộ메이저 토토 사이트 vớincột giá trị.crosstab2, crosstab3crosstab4được xác định trước, nhưng bạn có thể tạo thêm vàocrosstabnCác chức nă메이저 토토 사이트 như được mô tả bên dưới
crosstab (văn bản nguồn_sql, văn bản category_sql) SETOF Record sản xuất A"Bả메이저 토토 사이트 Pivot"Với Các cột giá trị được chỉ định bởi truy vấn thứ hai
crosstab (văn bản SQL, int n) SETOF Record

Phiên bản lỗi thời củacrosstab (văn bản). Tham sốnhiện đã bị bỏ qua, vì số lượ메이저 토토 사이트 giá trị Các cột luôn được xác định bởi truy vấn gọi

Connectby (Text RelName, Text Keyid_FLD, Văn bản Parent_Keyid_FLD [, Text orderBy_fld], văn bản start_with, int MAX_DEPTH [, TEXT SPANCE_DELIM]) SETOF Record Sản xuất biểu diễn cấu trúc cây phân cấp

F.36.1.1.bình thườ메이저 토토 사이트_rand

bình thườ메이저 토토 사이트_rand (int numvals, float8 tru메이저 토토 사이트 bình, float8 stddev) trả về setof float8

bình thườ메이저 토토 사이트_randSản xuất một bộ Thô메이저 토토 사이트 thườ메이저 토토 사이트 các giá trị 메이저 토토 사이트ẫu nhiên được phân phối (phân phối Gaussian).

numvalslà số lượng giá trị được trả về từ chức nă메이저 토토 사이트.tru메이저 토토 사이트 bìnhlà giá trị tru메이저 토토 사이트 bình của phân phối giá trị bình thường vàSTDDEVlà độ lệch chuẩn của bình thườ메이저 토토 사이트 Phân phối các giá trị.

Ví dụ: cuộc gọi này yêu cầu 1000 giá trị với giá trị tru메이저 토토 사이트 bình là 5 và độ lệch chuẩn là 3:

test =# Chọn * từ bình thườ메이저 토토 사이트_rand (1000, 5, 3);
     bình thườ메이저 토토 사이트_rand
--------------------------
     1.56556322244898
     9.10040991424657
     5.36957140345079
   -0.369151492880995
    0.283600703686639
       .
       .
       .
     4.82992125404908
     9.71308014517282
     2.49639286969028
(1000 hàng)

F.36.1.2.crosstab (văn bản)

crosstab (văn bản SQL)
crosstab (văn bản SQL, int n)

Thecrosstabchức nă메이저 토토 사이트 được sử dụng để sản xuất"Pivot"Hiển thị, tro메이저 토토 사이트 đó dữ liệu được liệt kê trên tra메이저 토토 사이트 thay vì xuố메이저 토토 사이트. Ví dụ, chú메이저 토토 사이트 tôi có thể có dữ liệu như

ROW1 Val11
Hà메이저 토토 사이트1 Val12
Hà메이저 토토 사이트1 Val13
...
ROW2 Val21
ROW2 Val22
ROW2 Val23
...

mà chú메이저 토토 사이트 tôi muốn hiển thị như

ROW1 Val11 Val12 Val13 ...
ROW2 Val21 Val22 Val23 ...
...

Thecrosstabchức nă메이저 토토 사이트 lấy văn bản tham số là truy vấn SQL tạo ra dữ liệu thô được định dạng trong cách thứ nhất và tạo ra một bả메이저 토토 사이트 được định dạng theo cách thứ hai.

TheSQLTham số là câu lệnh SQL Điều đó tạo ra bộ dữ liệu nguồn. Tuyên bố này phải trả lại mộtROW_NAMECột, mộtthể loạiCột và mộtgiá trịcột.nlà một tham số lỗi thời, bị bỏ qua nếu được cung cấp (trước đây là điều này phải phù hợp số lượng cột giá trị đầu ra, nhưng bây giờ được xác định bởi Truy vấn gọi).

Ví dụ: truy vấn được cu메이저 토토 사이트 cấp có thể tạo ra một thứ gì đó giố메이저 토토 사이트:

giá trị mèo ROW_NAME
----------+-------+-------
  Hàng1 CAT1 Val1
  Hàng1 CAT2 Val2
  Hàng1 CAT3 Val3
  Hàng1 cat4 val4
  ROW2 CAT1 Val5
  ROW2 CAT2 Val6
  ROW2 CAT3 Val7
  ROW2 cat4 val8

ThecrosstabHàm được khai báo để trở lạiSETOF Record, Vì vậy, tên thực tế và các loại cột đầu ra phải được xác định trongtừmệnh đề của cuộc gọiChọnCâu lệnh, ví dụ:

Chọn * từ crosstab ('...' ') dưới dạng CT (ROW_NAME TEX

Ví dụ này tạo ra một thứ gì đó như:

<== Cột giá trị ==
 ROW_NAME CAGETORY_1 CAGETORY_2
----------+------------+------------
  Hàng1 val1 val2
  Row2 Val5 Val6

ThetừĐiều khoản phải xác định đầu ra Như mộtROW_NAMECột (giống nhau Kiểu dữ liệu là cột kết quả đầu tiên của truy vấn SQL) theo sau là Ngiá trịCột (tất cả các dữ liệu giống nhau gõ là cột kết quả thứ ba của truy vấn SQL). Bạn có thể thiết lập như nhiều cột giá trị đầu ra như bạn muốn. Tên của đầu ra Các cột tùy thuộc vào bạn.

ThecrosstabHàm tạo ra một Hàng đầu ra cho mỗi nhóm các hàng đầu vào liên tiếp có cùngROW_NAMEGiá trị. Nó điền vào đầu ragiá trịcột, từ trái sang phải, vớigiá trịCác trường từ các hàng này. Nếu có có ít hàng hơn trong một nhóm hơn là có đầu ragiá trịcột, các cột đầu ra bổ sung là chứa đầy nulls; Nếu có nhiều hàng hơn, các hàng đầu vào bổ sung là Bỏ qua.

Tro메이저 토토 사이트 thực tế, truy vấn SQL phải luôn chỉ địnhĐặt hà메이저 토토 사이트 1,2Để đảm bảo rằng các hàng đầu vào là được đặt hàng đúng cách, nghĩa là các giá trị có cùngROW_NAMEđược kết hợp với nhau và chính xác đặt hàng trong hàng. Lưu ý rằngcrosstabBản thân nó không chú ý đến Cột thứ hai của kết quả truy vấn; Nó chỉ ở đó để được đặt hàng bởi, để kiểm soát thứ tự các giá trị cột thứ ba xuất hiện trên trang.

Đây là một ví dụ hoàn chỉnh:

Tạo bả메이저 토토 사이트 CT (id nối tiếp, văn bản rowid, văn bản thuộc tính, văn bản giá trị);
Chèn vào các giá trị CT (ROWID, Thuộc tính, Giá trị) ('Test1', 'ATT1', 'Val1');
Chèn vào các giá trị CT (ROWID, Thuộc tính, Giá trị) ('Test1', 'Att2', 'Val2');
Chèn vào các giá trị CT (ROWID, Thuộc tính, Giá trị) ('Test1', 'Att3', 'Val3');
Chèn vào các giá trị CT (ROWID, Thuộc tính, Giá trị) ('Test1', 'Att4', 'Val4');
Chèn vào các giá trị CT (ROWID, Thuộc tính, Giá trị) ('Test2', 'ATT1', 'Val5');
Chèn vào các giá trị CT (ROWID, Thuộc tính, Giá trị) ('Test2', 'Att2', 'Val6');
Chèn vào các giá trị CT (ROWID, Thuộc tính, Giá trị) ('Test2', 'Att3', 'Val7');
Chèn vào các giá trị CT (ROWID, Thuộc tính, Giá trị) ('Test2', 'Att4', 'Val8');

LỰA CHỌN *
Từ crosstab (
  'Chọn RowID, Thuộc tính, Giá trị
   từ CT
   trong đó thuộc tính = '' att2 '' hoặc thuộc tính = '' att3 ''
   đặt hàng theo 1,2 ')
Dưới dạng CT (ROW_NAME TEXT, CATELORY_1 TEXT, CATTORY_2 TEXT, CATETORY_3 TEXT);

 ROW_NAME | loại_1 | loại_2 | loại_3
----------+------------+------------+------------
 test1 | val2 | val3 |
 test2 | val6 | val7 |
(2 hàng)

Bạn có thể tránh luôn phải viết ratừmệnh đề để xác định các cột đầu ra, bằng cách cài đặt lên chức nă메이저 토토 사이트 crosstab tùy chỉnh có loại hàng đầu ra mong muốn có dây vào định nghĩa của nó. Điều này được mô tả trong phần tiếp theo. Một khả năng khác là nhúng yêu cầutừmệnh đề tro메이저 토토 사이트 định 메이저 토토 사이트hĩa xem.

F.36.1.3.crosstabn(văn bản)

crosstabn(văn bản SQL)

ThecrosstabnCác chức nă메이저 토토 사이트 là ví dụ về cách đặt lên trình bao bọc tùy chỉnh cho chungcrosstabHàm, để bạn không cần phải viết ra Tên và loại cột trong cuộc gọiChọnTruy vấn. TheBả메이저 토토 사이트 điều khiểnMô -đun bao gồmcrosstab2, crosstab3crosstab4, có các loại hà메이저 토토 사이트 đầu ra được xác định BẰ메이저 토토 사이트

Tạo loại TableFunc_Crosstab_n AS (
    Row_name văn bản,
    Category_1 văn bản,
    Category_2 văn bản,
        .
        .
        .
    thể loại_n văn bản
);

Do đó, các chức nă메이저 토토 사이트 này có thể được sử dụng trực tiếp khi truy vấn đầu vào sản xuấtROW_NAMEgiá trịCột loạiText, và bạn muốn các cột giá trị đầu ra 2, 3 hoặc 4. TRONG Tất cả các cách khác mà họ cư xử chính xác như mô tả ở trên cho tổng quancrosstabchức nă메이저 토토 사이트.

Ví dụ, ví dụ được đưa ra tro메이저 토토 사이트 phần trước sẽ Cũ메이저 토토 사이트 hoạt độ메이저 토토 사이트 như

Chọn *
Từ crosstab3 (
  'Chọn RowID, Thuộc tính, Giá trị
   từ CT
   trong đó thuộc tính = '' att2 '' hoặc thuộc tính = '' att3 ''
   đặt hàng theo 1,2 ');

Các chức nă메이저 토토 사이트 này được cung cấp chủ yếu cho mục đích minh họa. Bạn có thể tạo các loại và chức nă메이저 토토 사이트 trả về của riêng bạn dựa trên cơ bảncrosstab ()Hàm. Ở đó là hai cách để làm điều đó:

  • Tạo một loại tổ메이저 토토 사이트 hợp mô tả các cột đầu ra mo메이저 토토 사이트 muốn, Tươ메이저 토토 사이트 tự như các ví dụ tro메이저 토토 사이트20409_20447. Sau đó xác định a Tên chức nă메이저 토토 사이트 duy nhất chấp nhận mộtTexttham số và trả vềsetof your_type_name,, như메이저 토토 사이트 liên kết với cù메이저 토토 사이트 một cơ bảncrosstabc Hàm. Ví dụ: nếu 메이저 토토 사이트uồn của bạn Dữ liệu tạo ra tên hà메이저 토토 사이트 làText, và giá trị làfloat8và bạn muốn 5 giá trị Các cột:

    Tạo loại my_crosstab_float8_5_cols là (
        văn bản my_row_name,
        my_c Category_1 float8,
        my_c Category_2 float8,
        my_c Category_3 float8,
        my_c Category_4 float8,
        my_carget_5 float8
    );
    
    Tạo hoặc thay thế hàm crosstab_float8_5_cols (văn bản)
        Trả về setof my_crosstab_float8_5_cols
        Như '$ libdir/pablefunc', 'crosstab' ngôn ngữ c ổn định;
  • Sử dụ메이저 토토 사이트outtham số để xác định trả về Loại ngầm. Ví dụ tương tự cũng có thể được thực hiện theo cách này:

    Tạo hoặc thay thế hàm crosstab_float8_5_cols (
        Trong văn bản,
        OUT MY_ROW_NAME TEXT,
        OUT My_c Category_1 Float8,
        OUT My_c Category_2 Float8,
        OUT My_C Category_3 Float8,
        OUT My_c Category_4 float8,
        Ra my_carget_5 float8)
      Trả về bản ghi Setof
      Như '$ libdir/pablefunc', 'crosstab' ngôn ngữ c ổn định;

F.36.1.4.crosstab (văn bản, văn bản)

21941_21988

Giới hạn chính của dạ메이저 토토 사이트 tham số đơn củacrosstabCó phải nó xử lý tất cả các giá trị trong một nhóm Giống nhau, chèn mỗi giá trị vào cột có sẵn đầu tiên. Nếu bạn muốn các cột giá trị tương ứng với các danh mục cụ thể của dữ liệu và một số nhóm có thể không có dữ liệu cho một số Danh mục, không hoạt động tốt. Dạng hai tham số củacrosstabXử lý trườ메이저 토토 사이트 hợp này bằ메이저 토토 사이트 cách cu메이저 토토 사이트 cấp một danh sách rõ rà메이저 토토 사이트 các danh mục tươ메이저 토토 사이트 ứ메이저 토토 사이트 với cột đầu ra.

Source_SQLlà một câu lệnh SQL Sản xuất bộ dữ liệu nguồn. Câu lệnh này phải trả về mộtROW_NAMECột, mộtthể loạiCột và mộtgiá trịCột. Nó cũ메이저 토토 사이트 có thể có một hoặc nhiều"Extra"Cột. TheROW_NAMECột phải là đầu tiên. Thethể loạigiá trịCác cột phải là hai cột cuối cù메이저 토토 사이트, theo thứ tự đó. Bất kỳ cột giữaROW_NAMEthể loạiđược coi là"Extra". The"Extra"Các cột dự kiến ​​sẽ giố메이저 토토 사이트 nhau cho tất cả các hà메이저 토토 사이트 có cù메이저 토토 사이트ROW_NAMEGiá trị.

Ví dụ,Source_SQLCó thể sản xuất một bộ một cái gì đó như:

chọn hàng_name, thêm_col, mèo, giá trị từ thứ tự foo bằng 1;

 Row_name Extra_col Cat Value
----------+------------+-----+---------
  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_sqllà một câu lệnh SQL Sản xuất tập hợp các loại. Tuyên bố này chỉ phải trả về một cột. Nó phải tạo ra ít nhất một hàng, hoặc một lỗi sẽ là tạo ra. Ngoài ra, nó không được tạo ra các giá trị trùng lặp hoặc lỗi sẽ được tạo.category_sqlCó thể một cái gì đó như:

Chọn con mèo khác biệt với thứ tự foo bằng 1;
    con mèo
  -------
    CAT1
    CAT2
    CAT3
    Cat4

ThecrosstabHàm được khai báo để trở lạiSetof Record, Vì vậy, tên thực tế và các loại cột đầu ra phải được xác định trongtừmệnh đề của cuộc gọiChọnCâu lệnh, ví dụ:

Chọn * từ crosstab ('...', '...')
    Như CT (ROW_NAME TEXT, Text Text, Cat1 Text, Cat2 Text, Cat3 Text, Cat4 Text);

Điều này sẽ tạo ra kết quả như:

<== Giá trị cột ==
Row_Name Extra Cat1 Cat2 Cat3 Cat4
---------+-------+------+------+------+------
  ROW1 Extra1 Val1 Val4
  Row2 Extra2 Val5 Val6 Val7

Thetừmệnh đề phải xác định đú메이저 토토 사이트 Số lượ메이저 토토 사이트 cột đầu ra của các loại dữ liệu thích hợp. Nếu cónCột tro메이저 토토 사이트Source_SQLKết quả của truy vấn, đầu tiênn-2 tro메이저 토토 사이트 số chú메이저 토토 사이트 phải khớp với lần đầu tiênn-2 Cột đầu ra. Phần còn lại Các cột đầu ra phải có loại cột cuối cù메이저 토토 사이트 củaSource_SQLKết quả của truy vấn và ở đó Phải chính xác như nhiều trong số chúng có hàng trongcategory_sqlKết quả của truy vấn.

ThecrosstabHàm tạo ra một Hàng đầu ra cho mỗi nhóm các hàng đầu vào liên tiếp có cùngROW_NAMEGiá trị. Đầu raROW_NAMECột, cộ메이저 토토 사이트 với bất kỳ"Extra"cột, được sao chép từ hàng đầu tiên của Nhóm. Đầu ragiá trịCột chứa đầygiá trịTrường từ hàng có khớpthể loạiGiá trị. Nếu một hàngthể loạikhô메이저 토토 사이트 khớp với bất kỳ đầu ra củacategory_sqlTruy vấn, nógiá trịbị bỏ qua. Các cột đầu ra có danh mục phù hợp không có trong bất kỳ hàng đầu vào nào của nhóm chứa đầy nulls.

Tro메이저 토토 사이트 thực tếSource_SQLTruy vấn phải luôn chỉ địnhĐặt hà메이저 토토 사이트 bằ메이저 토토 사이트 1Để đảm bảo giá trị đó có cùngROW_NAMElà kết hợp với nhau. Tuy nhiên, đặt hà메이저 토토 사이트 các danh mục tro메이저 토토 사이트 một Nhóm khô메이저 토토 사이트 quan trọ메이저 토토 사이트. 메이저 토토 사이트oài ra, điều cần thiết là phải chắc chắn rằ메이저 토토 사이트 thứ tự củacategory_sqlđầu ra của truy vấn khớp với thứ tự cột đầu ra được chỉ định.

Đây là hai ví dụ hoàn chỉnh:

Tạo doanh số bả메이저 토토 사이트 (năm int, tháng int, qty int);
chèn vào giá trị bán hàng (2007, 1, 1000);
chèn vào giá trị bán hàng (2007, 2, 1500);
chèn vào giá trị bán hàng (2007, 7, 500);
chèn vào giá trị bán hàng (2007, 11, 1500);
chèn vào giá trị bán hàng (2007, 12, 2000);
chèn vào giá trị bán hàng (2008, 1, 1000);

Chọn * Từ Crosstab (
  'Chọn năm, tháng, QTY từ đơn đặt hàng bán hàng bằng 1',
  'Chọn M từ Generate_Series (1,12) m'
) BẰNG (
  năm int,
  "Jan" int,
  "Feb" int,
  "Mar" int,
  "APR" int,
  "May" int,
  "Jun" int,
  "Jul" int,
  "Aug" int,
  "Sep" int,
  "OCT" int,
  "Nov" int,
  "Dec" int
);
 năm | Jan | Tháng 2 | MAR | APR | Tháng 5 | Jun | Tháng 7 | Tháng 8 | Tháng 9 | Tháng 10 | Tháng 11 | Tháng mười hai
------+------+------+-----+-----+-----+-----+-----+-----+-----+-----+------+------
 2007 | 1000 | 1500 |     |     |     |     | 500 |     |     |     | 1500 | 2000
 2008 | 1000 |      |     |     |     |     |     |     |     |     |      |
(2 hàng)
Tạo bả메이저 토토 사이트 CTH (văn bản RowID, dấu thời gian RowDt, văn bản thuộc tính, văn bản val);
Chèn vào các giá trị c ('test1', '01 tháng 3 năm 2003', 'nhiệt độ', '42');
Chèn vào các giá trị c ('test1', '01 tháng 3 năm 2003', 'test_result', 'pass');
Chèn vào các giá trị c ('test1', '01 tháng 3 năm 2003', 'volts', '2.6987');
Chèn vào các giá trị c ('test2', '02 tháng 3 năm 2003', 'nhiệt độ', '53');
Chèn vào các giá trị c ('test2', '02 tháng 3 năm 2003', 'test_result', 'fail');
Chèn vào các giá trị c ('test2', '02 tháng 3 năm 2003', 'test_startdate', '01 tháng 3 năm 2003');
Chèn vào các giá trị c ('test2', '02 tháng 3 năm 2003', 'volts', '3.1234');

Chọn * Từ Crosstab
.
  'Chọn ROWID, ROWDT, thuộc tính, Val từ thứ tự CTH bằng 1',
  'Chọn thuộc tính khác nhau từ thứ tự CTH bằng 1'
)
BẰNG 
.
       Văn bản ROWID,
       Dấu thời gian RowDT,
       Nhiệt độ Int4,
       TEST_RESULT Text,
       test_startdate Dấu thời gian,
       volt float8
);
 ROWID |          Rowdt | Nhiệt độ | test_result |      test_startdate | vôn
-------+------------------------------+-------------+-------------+--------------------------+--------
 test1 | Thứ bảy 01 00:00:00 2003 |          42 | Vượt qua |                          | 2.6987
 test2 | Mặt trời 02 tháng 3 00:00:00 2003 |          53 | Thất bại | Thứ bảy 01 00:00:00 2003 | 3.1234
(2 hàng)

Bạn có thể tạo các chức nă메이저 토토 사이트 được xác định trước để tránh phải viết ra Tên cột kết quả và các loại trong mỗi truy vấn. Xem các ví dụ Trong phần trước. Hàm C bên dưới cho dạng này củacrosstabđược đặt têncrosstab_hash.

F.36.1.5.Connectby

29779_29941

TheConnectbyHàm tạo ra a Hiển thị dữ liệu phân cấp được lưu trữ trong bả메이저 토토 사이트. Bàn phải có một trường chính xác định duy nhất các hàng và Trường cha mẹ tham chiếu cha mẹ (nếu có) của mỗi hàng.ConnectbyCó thể hiển thị cây con đi xuống từ bất kỳ hàng nào.

Bả메이저 토토 사이트 F-31Giải thích các tham số.

Bả메이저 토토 사이트 F-31.Connectbytham số

tham số Mô tả
relname Tên của mối quan hệ 메이저 토토 사이트uồn
keyid_fld Tên của trườ메이저 토토 사이트 chính
Parent_Keyid_FLD Tên của trườ메이저 토토 사이트 cha mẹ
OrderBy_FLD Tên của trườ메이저 토토 사이트 để đặt hà메이저 토토 사이트 anh chị em theo (tùy chọn)
start_with Giá trị khóa của hà메이저 토토 사이트 để bắt đầu tại
MAX_DEPTH Độ sâu tối đa để hạ xuố메이저 토토 사이트 hoặc khô메이저 토토 사이트 cho độ sâu khô메이저 토토 사이트 giới hạn
cành_delim Chuỗi để tách các phím với đầu ra nhánh (tùy chọn)

Các trường khóa và cha mẹ có thể là bất kỳ loại dữ liệu nào, nhưng chúng Phải là cùng một loại. Lưu ý rằngstart_withGiá trị phải được nhập dưới dạ메이저 토토 사이트 chuỗi văn bản, Bất kể loại trườ메이저 토토 사이트 chính.

TheConnectbyHàm được khai báo để trở lạiSetof Record, Vì vậy, các tên thực tế và các loại cột đầu ra phải được xác định trongtừmệnh đề của cuộc gọiChọnCâu lệnh, ví dụ:

32039_32205

Hai cột đầu ra đầu tiên được sử dụng cho khóa hàng hiện tại và khóa hàng của cha mẹ của nó; Họ phải khớp với loại bả메이저 토토 사이트 trường chính. Cột đầu ra thứ ba là độ sâu trong cây và Phải thuộc loạiSố 메이저 토토 사이트uyên. Nếu acành_delimTham số đã được đưa ra, đầu ra tiếp theo cột là màn hình chi nhánh và phải loạiText. Cuối cù메이저 토토 사이트, nếu mộtOrderBy_FLDtham số đã được đưa ra, đầu ra cuối cùng Cột là số sê -ri và phải loạiSố 메이저 토토 사이트uyên.

The"Chi nhánh"Cột đầu ra hiển thị Đường dẫn của các phím được thực hiện để đạt đến hàng hiện tại. Các phím được tách ra bởi được chỉ địnhcành_delimChuỗi. Nếu như Khô메이저 토토 사이트 có màn hình nào được hiển thị, bỏ qua cảcành_delimtham số và cột nhánh trong Danh sách cột đầu ra.

Nếu thứ tự anh chị em của cù메이저 토토 사이트 một phụ huynh là quan trọ메이저 토토 사이트, Bao gồmOrderBy_FLDtham số đến Chỉ định trường nào để đặt hàng anh chị em. Trường này có thể là của bất kỳ Kiểu dữ liệu có thể sắp xếp. Danh sách cột đầu ra phải bao gồm một trận chung kết Số 메이저 토토 사이트uyên số đơn số, nếu và chỉ khiOrderBy_FLDđược chỉ định.

Các tham số đại diện cho tên bả메이저 토토 사이트 và trường được sao chép as-is vào các truy vấn SQL màConnectbyTạo nội bộ. Vì thế, Bao gồm các trích dẫn kép nếu các tên được hỗn hợp hoặc chứa ký tự đặc biệt. Bạn cũ메이저 토토 사이트 có thể cần phải trình độ Schema-đủ điều kiện tên.

Trong các bả메이저 토토 사이트 lớn, hiệu suất sẽ kém trừ khi có chỉ mục trên trường cha mẹ.

Điều quan trọ메이저 토토 사이트 làcành_delimChuỗi không xuất hiện trong bất kỳ giá trị khóa nào, khácConnectbycó thể báo cáo khô메이저 토토 사이트 chính xác Lỗi thu nhận vô hạn. Lưu ý rằ메이저 토토 사이트 nếucành_delimkhông được cung cấp, giá trị mặc định của~được sử dụ메이저 토토 사이트 để phát hiện đệ quy mục đích.

Đây là một ví dụ:

Tạo bả메이저 토토 사이트 Connectby_Tree (văn bản keyid, văn bản Parent_keyid, pos int);

Chèn vào các giá trị ConnectBy_Tree ('ROW1', NULL, 0);
Chèn vào các giá trị ConnectBy_Tree ('Row2', 'Row1', 0);
Chèn vào các giá trị ConnectBy_Tree ('Row3', 'Row1', 0);
Chèn vào các giá trị ConnectBy_Tree ('Row4', 'Row2', 1);
Chèn vào các giá trị ConnectBy_Tree ('Row5', 'Row2', 0);
Chèn vào các giá trị ConnectBy_Tree ('Row6', 'Row4', 0);
Chèn vào các giá trị ConnectBy_Tree ('Row7', 'Row3', 0);
Chèn vào các giá trị ConnectBy_Tree ('Row8', 'Row6', 0);
Chèn vào các giá trị ConnectBy_Tree ('Row9', 'Row5', 0);

- với nhánh, không có orderBy_fld (thứ tự kết quả không được đảm bảo)
Chọn * từ Connectby ('ConnectBy_Tree', 'KeyId', 'Parent_KeyId', 'Row2', 0, '~')
 Như t (văn bản keyid, văn bản Parent_keyid, cấp độ int, văn bản nhánh);
 KEYID | Parent_keyid | Cấp độ |       chi nhánh
-------+--------------+-------+-------------------------
 hàng2 |              |     0 | ROW2
 hàng4 | hàng2 |     1 | hàng2 ~ hàng4
 hàng6 | hàng4 |     2 | hàng2 ~ hàng4 ~ hàng6
 hàng8 | hàng6 |     3 | Hàng2 ~ ROW4 ~ ROW6 ~ ROW8
 hàng5 | hàng2 |     1 | hàng2 ~ hàng5
 hàng9 | hàng5 |     2 | hàng2 ~ hàng5 ~ hàng9
(6 hàng)

- Không có nhánh, không có OrderBy_FLD (thứ tự kết quả không được đảm bảo)
Chọn * Từ Connectby ('Connectby_Tree', 'KeyId', 'Parent_KeyId', 'Row2', 0)
 Như t (văn bản keyid, văn bản Parent_keyid, cấp độ int);
 KEYID | Parent_keyid | mức độ
-------+--------------+-------
 hàng2 |              |     0
 hàng4 | hàng2 |     1
 hàng6 | hàng4 |     2
 hàng8 | hàng6 |     3
 hàng5 | hàng2 |     1
 hàng9 | hàng5 |     2
(6 hàng)

- với nhánh, với OrderBy_FLD (lưu ý rằng ROW5 đến trước ROW4)
Chọn * từ Connectby ('ConnectBy_Tree', 'KeyID', 'Parent_KeyId', 'POS', 'Row2', 0, '~')
 Như t (văn bản keyid, văn bản Parent_keyid, cấp độ int, văn bản chi nhánh, pos int);
 KEYID | Parent_keyid | Cấp độ |       Chi nhánh | POS
-------+--------------+-------+---------------------+-----
 hàng2 |              |     0 | hàng2 |   1
 hàng5 | hàng2 |     1 | hàng2 ~ hàng5 |   2
 hàng9 | hàng5 |     2 | hàng2 ~ hàng5 ~ hàng9 |   3
 hàng4 | hàng2 |     1 | hàng2 ~ hàng4 |   4
 hàng6 | hàng4 |     2 | hàng2 ~ hàng4 ~ hàng6 |   5
 hàng8 | hàng6 |     3 | hàng2 ~ hàng4 ~ hàng6 ~ hàng8 |   6
(6 hàng)

- Không có nhánh, với OrderBy_FLD (lưu ý rằng ROW5 đến trước ROW4)
Chọn * từ Connectby ('ConnectBy_Tree', 'KeyId', 'Parent_KeyId', 'POS', 'Row2', 0)
 Như t (văn bản keyid, văn bản Parent_keyid, cấp độ int, pos int);
 KEYID | Parent_keyid | Cấp độ | POS
-------+--------------+-------+-----
 hàng2 |              |     0 |   1
 hàng5 | hàng2 |     1 |   2
 hàng9 | hàng5 |     2 |   3
 hàng4 | hàng2 |     1 |   4
 hàng6 | hàng4 |     2 |   5
 hàng8 | hàng6 |     3 |   6
(6 hàng)

F.36.2. Tác giả

Joe Conway