PostgreSQL: kèo bóng đá hôm | |||
---|---|---|---|
prev | UP | Phụ lục F. cách đọc kèo bóng đá mô -đun được cung cấp bổ sung | NEXT |
ThebảngMô -đun bao gồm cách đọc kèo bóng đá chức năng khác nhau mà cách đọc kèo bóng đá bảng trả về (nghĩa là nhiều hàng). cách đọc kèo bóng đá chức năng này hữu ích cả theo đúng nghĩa của chúng và là ví dụ về cách viết cách đọc kèo bóng đá chức năng C trả về nhiều hàng.
Bảng F-31Hiển thị cách đọc kèo bóng đá chức năng được cung cấp bởiBảng điều khiểnMô -đun.
Bảng F-31.bảngChức năng
chức năng | return | Mô tả |
---|---|---|
cormal_rand (int numvals, float8 trung bình, float8 stddev) |
setof float8 | Sản xuất một tập hợp cách đọc kèo bóng đá giá trị ngẫu nhiên được phân phối bình thường |
crosstab (văn bản SQL) |
SETOF Record | Sản xuất A"Bảng Pivot"chứa tên cách đọc kèo bóng đá cộng vớincách đọc kèo bóng đá giá trị, trong đónđược xác định bởi loại cách đọc kèo bóng đá được chỉ định trong truy vấn gọi |
crosstabn(văn bản SQL) |
setof bảng_crosstab_n | Sản xuất A"Bảng Pivot"chứa tên cách đọc kèo bóng đá cộng vớincách đọc kèo bóng đá giá trị.crosstab2 , crosstab3 vàcrosstab4 được xác định trước, nhưng bạn có thể tạo thêmcrosstabn cách đọc kèo bóng đá chức năng như được mô tả bên dưới |
crosstab (text Source_sql, văn bản category_sql) |
Setof Record | Sản xuất A"Bảng Pivot"Với cách đọc kèo bóng đá 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ủa |
11691_11832 |
SETOF Record | Sản xuất biểu diễn cấu trúc cây phân cấp |
bình thường_rand
12142_12217
bình thường_rand
Sản xuất một tập hợp cách đọc kèo bóng đá giá trị ngẫu nhiên được phân phối bình thường (phân phối Gaussian).
numvalslà số lượng giá trị được trả về từ hàm.trung bìnhlà giá trị trung bình của phân phối giá trị bình thường vàSTDDEVlà độ lệch chuẩn của phân phối giá trị bình thường.
Ví dụ: cuộc gọi này yêu cầu 1000 giá trị với giá trị trung bình là 5 và độ lệch chuẩn là 3:
test =# Chọn * từ bình thường_rand (1000, 5, 3); bình thường_rand -------------------------- 1.56556322244898 9.10040991424657 5.36957140345079 -0.369151492880995 0.283600703686639 . . . 4.82992125404908 9.71308014517282 2.49639286969028 (1000 cách đọc kèo bóng đá)
crosstab (văn bản)
crosstab (văn bản SQL) crosstab (văn bản SQL, int n)
Thecrosstab
Hàm được sử dụng để sản xuất"Pivot"Hiển thị, trong đó dữ liệu được liệt kê trên trang thay vì xuống. Ví dụ: chúng ta có thể có dữ liệu như
ROW1 Val11 Hàng1 Val12 Hàng1 Val13 ... ROW2 Val21 ROW2 Val22 ROW2 Val23 ...
mà chúng tôi muốn hiển thị như
ROW1 Val11 Val12 Val13 ... ROW2 Val21 Val22 Val23 ... ...
Thecrosstab
Hàm lấy tham số văn bản là truy vấn SQL tạo dữ liệu thô được định dạng theo cách đầu tiên và tạo ra một bảng được định dạng theo cách thứ hai.
TheSQLTham số là câu lệnh SQL tạo ra bộ dữ liệu nguồn. Câu lệnh này phải trả về mộtROW_NAMEcách đọc kèo bóng đá, mộtthể loạicách đọc kèo bóng đá và mộtgiá trịcách đọc kèo bóng đá.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 khớp với số lượng cách đọc kèo bóng đá giá trị đầu ra, nhưng bây giờ được xác định bởi truy vấn gọi điện).
Ví dụ: truy vấn được cung cấp có thể tạo ra một tập hợp một cái gì đó như:
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
Thecrosstab
Hàm được tuyên bố trả vềSETOF Record, Vì vậy, cách đọc kèo bóng đá tên và loại thực tế của cách đọc kèo bóng đá 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ách đọc kèo bóng đá giá trị == ROW_NAME CAGETORY_1 CAGETORY_2 ----------+------------+------------ Hàng1 val1 val2 Row2 Val5 Val6
Thetừmệnh đề phải xác định đầu ra là mộtROW_NAMEcách đọc kèo bóng đá (cùng loại dữ liệu với cách đọc kèo bóng đá kết quả đầu tiên của truy vấn SQL) theo sau là ngiá trịCột (tất cả cách đọc kèo bóng đá loại dữ liệu giống như cột kết quả thứ ba của truy vấn SQL). Bạn có thể thiết lập nhiều cột giá trị đầu ra như bạn muốn. Tên của cách đọc kèo bóng đá cột đầu ra tùy thuộc vào bạn.
Thecrosstab
Hàm tạo ra một cách đọc kèo bóng đá đầu ra cho mỗi nhóm cách đọc kèo bóng đá đầu vào liên tiếp có cùngROW_NAMEGiá trị. Nó điền vào đầu ragiá trịcách đọc kèo bóng đá, từ trái sang phải, vớigiá trịcách đọc kèo bóng đá trường từ cách đọc kèo bóng đá hàng này. Nếu có ít hàng hơn trong một nhóm hơn là có đầu ragiá trịcách đọc kèo bóng đá cột, cách đọc kèo bóng đá cột đầu ra bổ sung được lấp đầy bằng null; Nếu có nhiều hàng hơn, cách đọc kèo bóng đá hàng đầu vào bổ sung sẽ bị bỏ qua.
Trong thực tế, truy vấn SQL phải luôn chỉ địnhĐặt cách đọc kèo bóng đá bằng 1,2Để đảm bảo rằng cách đọc kèo bóng đá hàng đầu vào được đặt hàng đúng cách, nghĩa là cách đọc kèo bóng đá giá trị có cùngROW_NAMEđược kết hợp với nhau và đặt cách đọc kèo bóng đá chính xác trong cách đọc kèo bóng đá. Lưu ý rằngcrosstab
Bả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ự trong đó cách đọc kèo bóng đá 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ảng 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ách đọc kèo bóng đá giá trị CT (ROWID, Thuộc tính, Giá trị) ('Test1', 'ATT1', 'Val1'); Chèn vào cách đọc kèo bóng đá giá trị CT (ROWID, Thuộc tính, Giá trị) ('Test1', 'Att2', 'Val2'); Chèn vào cách đọc kèo bóng đá giá trị CT (ROWID, Thuộc tính, Giá trị) ('Test1', 'Att3', 'Val3'); Chèn vào cách đọc kèo bóng đá giá trị CT (ROWID, Thuộc tính, Giá trị) ('Test1', 'Att4', 'Val4'); Chèn vào cách đọc kèo bóng đá giá trị CT (ROWID, Thuộc tính, Giá trị) ('Test2', 'ATT1', 'Val5'); Chèn vào cách đọc kèo bóng đá giá trị CT (ROWID, Thuộc tính, Giá trị) ('Test2', 'Att2', 'Val6'); Chèn vào cách đọc kèo bóng đá giá trị CT (ROWID, Thuộc tính, Giá trị) ('Test2', 'Att3', 'Val7'); Chèn vào cách đọc kèo bóng đá 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ách đọc kèo bóng đá cột đầu ra, bằng cách thiết lập chức năng 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 đề trong định nghĩa xem.
Lưu ý:Xem thêm\ crosstabviewLệnh trongPSQL, cung cấp chức năng tương tự
crosstab ()
.
crosstabn(văn bản)
crosstabn(văn bản SQL)
Thecrosstabn
cách đọc kèo bóng đá chức năng là ví dụ về cách thiết lập trình bao bọc tùy chỉnh cho chungcrosstab
Hàm, để bạn không cần ghi tên và loại cách đọc kèo bóng đá trong cuộc gọiChọnTruy vấn. TheBảngMô -đun bao gồmcrosstab2
, crosstab3
vàcrosstab4
, có loại cách đọc kèo bóng đá đầu ra được xác định là
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ách đọc kèo bóng đá chức năng này có thể được sử dụng trực tiếp khi truy vấn đầu vào tạo raROW_NAMEvàgiá trịcách đọc kèo bóng đá loạiTextvà bạn muốn 2, 3 hoặc 4 cột giá trị đầu ra. Theo tất cả cách đọc kèo bóng đá cách khác, họ cư xử chính xác như được mô tả ở trên cho chungcrosstab
chức năng.
Ví dụ, ví dụ được đưa ra trong phần trước cũng sẽ hoạt động 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 cách đọc kèo bóng đá theo 1,2 ');
cách đọc kèo bóng đá chức năng này được cung cấp chủ yếu cho mục đích minh họa. Bạn có thể tạo cách đọc kèo bóng đá loại và chức năng trả về của riêng bạn dựa trên cơ bảncrosstab ()
Hàm. Có hai cách để làm điều đó:
Tạo một loại tổng hợp mô tả cách đọc kèo bóng đá cột đầu ra mong muốn, tương tự như cách đọc kèo bóng đá ví dụ trong20715_20753. Sau đó xác định tên chức năng duy nhất chấp nhận mộtTexttham số và trả vềsetof your_type_name, nhưng liên kết với cùng một cơ sởcrosstab
c Hàm. Ví dụ: nếu dữ liệu nguồn của bạn tạo tên cách đọc kèo bóng đá làTextvà cách đọc kèo bóng đá giá trị làfloat8và bạn muốn 5 cách đọc kèo bóng đá giá trị:
Tạo loại my_crosstab_float8_5_cols AS ( 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ụngouttham số để xác định loại trả về 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;
crosstab (văn bản, văn bản)
22244_22290
Giới hạn chính của dạng tham số đơn củacrosstab
là nó xử lý tất cả cách đọc kèo bóng đá 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ách đọc kèo bóng đá cột giá trị tương ứng với cách đọc kèo bóng đá loại dữ liệu cụ thể và một số nhóm có thể không có dữ liệu cho một số danh mục, điều đó không hoạt động tốt. Dạng hai tham số củacrosstab
Xử lý trường hợp này bằng cách cung cấp một danh sách rõ ràng cách đọc kèo bóng đá danh mục tương ứng với cách đọc kèo bóng đá cột đầu ra.
Source_SQLlà một câu lệnh SQL tạo ra bộ dữ liệu nguồn. Câu lệnh này phải trả về mộtROW_NAMEcách đọc kèo bóng đá, mộtthể loạicách đọc kèo bóng đá và mộtgiá trịcách đọc kèo bóng đá. Nó cũng có thể có một hoặc nhiều"Extra"cách đọc kèo bóng đá. TheROW_NAMEcách đọc kèo bóng đá phải là đầu tiên. Thethể loạivàgiá trịcách đọc kèo bóng đá cột phải là hai cột cuối cùng, theo thứ tự đó. Bất kỳ cột nào giữaROW_NAMEvàthể loạiđược coi là"Extra". The"Extra"cách đọc kèo bóng đá cột dự kiến sẽ giống nhau cho tất cả cách đọc kèo bóng đá hàng có cùngROW_NAMEGiá trị.
Ví dụ,Source_SQLcó thể tạo ra một bộ một thứ 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 tạo ra tập hợp cách đọc kèo bóng đá loại. Câu lệnh này phải trả về chỉ một cột. Nó phải tạo ra ít nhất một hàng, hoặc một lỗi sẽ được tạo ra. Ngoài ra, nó không được tạo ra cách đọc kèo bóng đá giá trị trùng lặp hoặc một lỗi sẽ được tạo ra.category_sqlcó thể là 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
Thecrosstab
Hàm được tuyên bố trả lạiSETOF Record, Vì vậy, cách đọc kèo bóng đá tên và loại thực tế của cách đọc kèo bóng đá cột đầu ra phải được xác định trongtừmệnh đề 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ư:
<== cách đọc kèo bóng đá giá trị == 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ượng cột đầu ra thích hợp của cách đọc kèo bóng đá loại dữ liệu thích hợp. Nếu cóncách đọc kèo bóng đá trongSource_SQLKết quả của truy vấn, đầu tiênn-2 trong số chúng phải khớp với đầu tiênn-2 Cột đầu ra. cách đọc kèo bóng đá cột đầu ra còn lại phải có loại cột cuối cùng củaSource_SQLKết quả của truy vấn và phải có chính xác nhiều trong số chúng có cách đọc kèo bóng đá trongcategory_sqlKết quả của truy vấn.
Thecrosstab
Hàm tạo ra một cách đọc kèo bóng đá đầu ra cho mỗi nhóm cách đọc kèo bóng đá đầu vào liên tiếp có cùngROW_NAMEGiá trị. Đầu raROW_NAMEcách đọc kèo bóng đá, cộng với bất kỳ"Extra"Cột, được sao chép từ cách đọc kèo bóng đá đầu tiên của nhóm. Đầu ragiá trịcách đọc kèo bóng đá cột được lấp đầy bằnggiá trịcách đọc kèo bóng đá trường từ cách đọc kèo bóng đá hàng có khớpthể loạiGiá trị. Nếu một cách đọc kèo bóng đáthể loạikhông phù hợp với bất kỳ đầu ra nào củacategory_sqlTruy vấn, nógiá trịbị bỏ qua. cách đọc kèo bóng đá 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 được lấp đầy bằng nulls.
Trong thực tếSource_SQLTruy vấn phải luôn chỉ địnhĐặt cách đọc kèo bóng đá bằng 1Để đảm bảo rằng cách đọc kèo bóng đá giá trị có cùngROW_NAMEđược kết hợp với nhau. Tuy nhiên, việc đặt hàng cách đọc kèo bóng đá danh mục trong một nhóm không quan trọng. Ngoài ra, điều cần thiết là phải chắc chắn rằng thứ tự củacategory_sqlĐầu ra của Truy vấn phù hợp với thứ tự cách đọc kèo bóng đá đầu ra được chỉ định.
Đây là hai ví dụ hoàn chỉnh:
Tạo doanh số bảng (năm int, tháng int, qty int); chèn vào giá trị bán cách đọc kèo bóng đá (2007, 1, 1000); chèn vào giá trị bán cách đọc kèo bóng đá (2007, 2, 1500); chèn vào giá trị bán cách đọc kèo bóng đá (2007, 7, 500); chèn vào giá trị bán cách đọc kèo bóng đá (2007, 11, 1500); chèn vào giá trị bán cách đọc kèo bóng đá (2007, 12, 2000); chèn vào giá trị bán cách đọc kèo bóng đá (2008, 1, 1000); Chọn * Từ Crosstab ( 'Chọn năm, tháng, QTY từ đơn đặt cách đọc kèo bóng đá bán cách đọc kèo bó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 cách đọc kèo bóng đá)
Tạo bảng 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ách đọc kèo bóng đá giá trị c ('test1', '01 tháng 3 năm 2003', 'nhiệt độ', '42'); Chèn vào cách đọc kèo bóng đá giá trị c ('test1', '01 tháng 3 năm 2003', 'test_result', 'pass'); Chèn vào cách đọc kèo bóng đá giá trị c ('test1', '01 tháng 3 năm 2003', 'volts', '2.6987'); Chèn vào cách đọc kèo bóng đá giá trị c ('test2', '02 tháng 3 năm 2003', 'nhiệt độ', '53'); Chèn vào cách đọc kèo bóng đá giá trị c ('test2', '02 tháng 3 năm 2003', 'test_result', 'fail'); Chèn vào cách đọc kèo bóng đá 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ách đọc kèo bóng đá 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ách đọc kèo bóng đá chức năng được xác định trước để tránh phải ghi ra tên và loại kết quả trong mỗi truy vấn. Xem cách đọc kèo bóng đá 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.
Connectby
30079_30240
TheConnectby
Hàm tạo ra màn hình hiển thị dữ liệu phân cấp được lưu trữ trong bảng. Bảng phải có một trường chính xác định duy nhất cách đọc kèo bóng đá hàng và trường cha mẹ tham chiếu cha mẹ (nếu có) của mỗi hàng.Connectby
Có thể hiển thị cây con giảm dần từ bất kỳ cách đọc kèo bóng đá nào.
Bảng F-32Giải thích cách đọc kèo bóng đá tham số.
Bảng F-32.Connectby
tham số
tham số | Mô tả |
---|---|
relname | Tên của mối quan hệ nguồn |
keyid_fld | Tên của trường chính |
Parent_keyid_fld | Tên của trường cha mẹ |
OrderBy_FLD | Tên của trường để đặt cách đọc kèo bóng đá anh chị em theo (tùy chọn) |
start_with | Giá trị khóa của cách đọc kèo bóng đá để bắt đầu tại |
MAX_DEPTH | Độ sâu tối đa để hạ xuống hoặc bằng không cho độ sâu không giới hạn |
cành_delim | Chuỗi để tách cách đọc kèo bóng đá phím với đầu ra nhánh (tùy chọn) |
cách đọc kèo bóng đá 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ạng chuỗi văn bản, bất kể loại trường chính.
TheConnectby
Hàm được tuyên bố trả lạiSETOF Record, Vì vậy, cách đọc kèo bóng đá tên và loại thực tế của cách đọc kèo bóng đá 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ụ:
32334_32499
Hai cột đầu ra đầu tiên được sử dụng cho phím cách đọc kèo bóng đá hiện tại và phím cách đọc kèo bóng đá của nó; Họ phải khớp với loại trường chính của bảng. Cột đầu ra thứ ba là độ sâu trong cây và phải loạiSố nguyên. Nếu acành_delimTham số đã được đưa ra, cách đọc kèo bóng đá đầu ra tiếp theo là màn hình nhánh và phải thuộc loạiText. Cuối cùng, nếu mộtOrderBy_FLDTham số đã được đưa ra, cách đọc kèo bóng đá đầu ra cuối cùng là số sê -ri và phải thuộc loạiSố nguyên.
The"Chi nhánh"Cột đầu ra hiển thị đường dẫn của cách đọc kèo bóng đá phím được thực hiện để đạt được hàng hiện tại. cách đọc kèo bóng đá khóa được phân tách bằng được chỉ địnhcành_delimChuỗi. Nếu không có hiển thị chi nhánh nào, hãy bỏ qua cảcành_delimTham số và cách đọc kèo bóng đá nhánh trong danh sách cách đọc kèo bóng đá đầu ra.
Nếu thứ tự của anh chị em của cùng một cha mẹ là quan trọng, bao gồmOrderBy_FLDtham số để chỉ định trường nào để đặt cách đọc kèo bóng đá anh chị em. Trường này có thể thuộc bất kỳ loại dữ liệu có thể sắp xếp. Danh sách cột đầu ra phải bao gồm cột nối số số tiếp số nguyên cuối cùng, nếu và chỉ khiOrderBy_FLDđược chỉ định.
cách đọc kèo bóng đá tham số đại diện cho tên bảng và trường được sao chép AS-IS vào cách đọc kèo bóng đá truy vấn SQL màConnectby
Tạo nội bộ. Do đó, bao gồm cách đọc kèo bóng đá trích dẫn kép nếu cách đọc kèo bóng đá tên là trường hợp hỗn hợp hoặc chứa cách đọc kèo bóng đá ký tự đặc biệt. Bạn cũng có thể cần phải trình độ Schema-đủ điều kiện.
Trong cách đọc kèo bóng đá bảng lớn, hiệu suất sẽ kém trừ khi có chỉ mục trên trường khóa phụ huynh.
Điều quan trọng làcành_delimChuỗi không xuất hiện trong bất kỳ giá trị khóa nào, khácConnectby
Có thể báo cáo không chính xác một lỗi thu nhận vô hạn. Lưu ý rằng nếucành_delimkhông được cung cấp, giá trị mặc định của~được sử dụng cho mục đích phát hiện đệ quy.
Đây là một ví dụ:
Tạo bảng Connectby_Tree (văn bản keyid, văn bản Parent_keyid, pos int); Chèn vào cách đọc kèo bóng đá giá trị ConnectBy_Tree ('ROW1', NULL, 0); Chèn vào cách đọc kèo bóng đá giá trị ConnectBy_Tree ('Row2', 'Row1', 0); Chèn vào cách đọc kèo bóng đá giá trị ConnectBy_Tree ('Row3', 'Row1', 0); Chèn vào cách đọc kèo bóng đá giá trị ConnectBy_Tree ('Row4', 'Row2', 1); Chèn vào cách đọc kèo bóng đá giá trị ConnectBy_Tree ('Row5', 'Row2', 0); Chèn vào cách đọc kèo bóng đá giá trị ConnectBy_Tree ('Row6', 'Row4', 0); Chèn vào cách đọc kèo bóng đá giá trị ConnectBy_Tree ('Row7', 'Row3', 0); Chèn vào cách đọc kèo bóng đá giá trị ConnectBy_Tree ('Row8', 'Row6', 0); Chèn vào cách đọc kèo bóng đá 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)
Joe Conway