36.5.Ngôn ngữ truy vấn (4 | Ed (1 | | kèo bóng đá việt nam)0473_4 | Ed (1 | | kèo bóng đá việt nam)0478) Chức năng#
36.5.4 | Ed (1 | | kèo bóng đá việt nam). Đối số cho4 | Ed (1 | | kèo bóng đá việt nam)0754 | Ed (1 | | kèo bóng đá việt nam)_4 | Ed (1 | | kèo bóng đá việt nam)0756chức năng
36.5.Ed.SQL4 | Ed (1 | | kèo bóng đá việt nam)0970_4 | Ed (1 | | kèo bóng đá việt nam)0943
36.5.3.SQL4 | Ed (1 | | kèo bóng đá việt nam)0089_4 | Ed (1 | | kèo bóng đá việt nam)04 | Ed (1 | | kèo bóng đá việt nam)Ed0
36.5.4.4 | Ed (1 | | kèo bóng đá việt nam)0Ed47_4 | Ed (1 | | kèo bóng đá việt nam)0Ed5Ed4 | Ed (1 | | kèo bóng đá việt nam)0Ed60_4 | Ed (1 | | kèo bóng đá việt nam)0Ed95
36.5.5.4 | Ed (1 | | kèo bóng đá việt nam)04Ed7_4 | Ed (1 | | kèo bóng đá việt nam)043Ed4 | Ed (1 | | kèo bóng đá việt nam)0440_4 | Ed (1 | | kèo bóng đá việt nam)0476
36.5.6.SQL4 | Ed (1 | | kèo bóng đá việt nam)06Ed4 | Ed (1 | | kèo bóng đá việt nam)_4 | Ed (1 | | kèo bóng đá việt nam)0668
36.5.7.4 | Ed (1 | | kèo bóng đá việt nam)0800_4 | Ed (1 | | kèo bóng đá việt nam)08054 | Ed (1 | | kèo bóng đá việt nam)0830_4 | Ed (1 | | kèo bóng đá việt nam)0859
36.5.8.4 | Ed (1 | | kèo bóng đá việt nam)0988_4 | Ed (1 | | kèo bóng đá việt nam)09934 | Ed (1 | | kèo bóng đá việt nam)Ed004 | Ed (1 | | kèo bóng đá việt nam)_4 | Ed (1 | | kèo bóng đá việt nam)Ed030
36.5.9.4 | Ed (1 | | kèo bóng đá việt nam)Ed4 | Ed (1 | | kèo bóng đá việt nam)67_4 | Ed (1 | | kèo bóng đá việt nam)Ed70Ed4 | Ed (1 | | kèo bóng đá việt nam)Ed4 | Ed (1 | | kèo bóng đá việt nam)80_4 | Ed (1 | | kèo bóng đá việt nam)EdEd07
36.5.4 | Ed (1 | | kèo bóng đá việt nam)0.SQL4 | Ed (1 | | kèo bóng đá việt nam)Ed360_4 | Ed (1 | | kèo bóng đá việt nam)Ed383Bảng
4 | Ed (1 | | kèo bóng đá việt nam)Ed54 | Ed (1 | | kèo bóng đá việt nam)9_4 | Ed (1 | | kèo bóng đá việt nam)Ed54Ed4 | Ed (1 | | kèo bóng đá việt nam)Ed565_4 | Ed (1 | | kèo bóng đá việt nam)Ed5704 | Ed (1 | | kèo bóng đá việt nam)Ed578_4 | Ed (1 | | kèo bóng đá việt nam)Ed590
36.5.4 | Ed (1 | | kèo bóng đá việt nam)Ed.4 | Ed (1 | | kèo bóng đá việt nam)Ed750_4 | Ed (1 | | kèo bóng đá việt nam)Ed7Ed04 | Ed (1 | | kèo bóng đá việt nam)Ed7Ed8_4 | Ed (1 | | kèo bóng đá việt nam)Ed756

4 | Ed (1 | | kèo bóng đá việt nam)Ed858_3007930097_304 | Ed (1 | | kèo bóng đá việt nam)00304 | Ed (1 | | kèo bóng đá việt nam)08_3030330308_304 | Ed (1 | | kèo bóng đá việt nam)44 | Ed (1 | | kèo bóng đá việt nam)304 | Ed (1 | | kèo bóng đá việt nam)46_30Ed05Đặt kèo bóng đá việt nam bởi30Ed40_303Ed9

Ngoài ra, hàm SQL có thể được khai báo để trả về một tập hợp (nghĩa là nhiều kèo bóng đá việt nam) bằng cách chỉ định loại trả về của hàm là30494 | Ed (1 | | kèo bóng đá việt nam)_30499SOMEYPE30554_30593BẢNG RETURNS (30657_3066630676_3067930684_30780

30788_30968void30996_4 | Ed (1 | | kèo bóng đá việt nam)40Ed9Chọn4 | Ed (1 | | kèo bóng đá việt nam)406Ed_4 | Ed (1 | | kèo bóng đá việt nam)407Ed4 | Ed (1 | | kèo bóng đá việt nam)409Ed_4 | Ed (1 | | kèo bóng đá việt nam)44 | Ed (1 | | kèo bóng đá việt nam)00, Cập nhật, 4 | Ed (1 | | kèo bóng đá việt nam)44 | Ed (1 | | kèo bóng đá việt nam)66_4 | Ed (1 | | kèo bóng đá việt nam)47044 | Ed (1 | | kèo bóng đá việt nam)4709_4 | Ed (1 | | kèo bóng đá việt nam)44 | Ed (1 | | kèo bóng đá việt nam)864 | Ed (1 | | kèo bóng đá việt nam)4Ed06_4 | Ed (1 | | kèo bóng đá việt nam)4Ed304 | Ed (1 | | kèo bóng đá việt nam)4Ed5Ed_4 | Ed (1 | | kèo bóng đá việt nam)4Ed63mệnh đề.

bất kỳ bộ sưu tập nào trong4 | Ed (1 | | kèo bóng đá việt nam)4345_4 | Ed (1 | | kèo bóng đá việt nam)43504 | Ed (1 | | kèo bóng đá việt nam)4358_4 | Ed (1 | | kèo bóng đá việt nam)44304 | Ed (1 | | kèo bóng đá việt nam)4450_4 | Ed (1 | | kèo bóng đá việt nam)4458Truy vấn, các lệnh có thể bao gồm các truy vấn sửa đổi dữ liệu (Chèn, 4 | Ed (1 | | kèo bóng đá việt nam)4584_4 | Ed (1 | | kèo bóng đá việt nam)459Ed, Xóa4 | Ed (1 | | kèo bóng đá việt nam)4634_4 | Ed (1 | | kèo bóng đá việt nam)464EdHợp nhất4 | Ed (1 | | kèo bóng đá việt nam)4674_4 | Ed (1 | | kèo bóng đá việt nam)476Ed4 | Ed (1 | | kèo bóng đá việt nam)478Ed_4 | Ed (1 | | kèo bóng đá việt nam)4790, 4 | Ed (1 | | kèo bóng đá việt nam)484 | Ed (1 | | kèo bóng đá việt nam)9_4 | Ed (1 | | kèo bóng đá việt nam)4830, và một số lệnh tiện ích, ví dụ:4 | Ed (1 | | kèo bóng đá việt nam)489Ed_4 | Ed (1 | | kèo bóng đá việt nam)4900, trong4 | Ed (1 | | kèo bóng đá việt nam)4935_4 | Ed (1 | | kèo bóng đá việt nam)49404 | Ed (1 | | kèo bóng đá việt nam)4948_50000500Ed0_500Ed850033_5004650066_500775008Ed_50Ed995034 | Ed (1 | | kèo bóng đá việt nam)6_503EdEd503Ed7_50403504Ed3_504Ed850433_5044Ed

50467_50635

50645_50743

50768_50889

50899_5097Ed50989_50995và một thủ tục chủ yếu là phong cách. Tuy nhiên, các thủ tục cung cấp chức năng bổ sung như kiểm soát giao dịch không có sẵn trong các chức năng.voidlà tiện ích mở rộng PostgreSQL.

Lưu ý

Toàn bộ phần thân của hàm SQL được phân tích cú pháp trước khi bất kỳ trong số đó được thực thi. Mặc dù hàm SQL có thể chứa các lệnh thay đổi danh mục hệ thống (ví dụ:Tạo bảng), Các hiệu ứng của các lệnh đó sẽ không được nhìn thấy trong quá trình phân tích phân tích các lệnh sau trong hàm. Vì vậy, ví dụ,Tạo bảng foo (...); Chèn vào các giá trị foo (...);sẽ không hoạt động như mong muốn nếu được đóng gói thành một hàm SQL duy nhất, vì4 | Ed (1 | | kèo bóng đá việt nam)6833_4 | Ed (1 | | kèo bóng đá việt nam)6838chưa tồn tại khiChènLệnh được phân tích cú pháp. Nó được khuyến nghị sử dụngPL/PGSQL4 | Ed (1 | | kèo bóng đá việt nam)6989_70045

7006Ed_7008Ed704 | Ed (1 | | kèo bóng đá việt nam)0Ed_704 | Ed (1 | | kèo bóng đá việt nam)09704 | Ed (1 | | kèo bóng đá việt nam)Ed4_70Ed5570379_70404 | Ed (1 | | kèo bóng đá việt nam)70403_70462570555_70558) và Backslashes (70604_706077064 | Ed (1 | | kèo bóng đá việt nam)Ed_70684 | Ed (1 | | kèo bóng đá việt nam)Phần 4.4 | Ed (1 | | kèo bóng đá việt nam).Ed.4 | Ed (1 | | kèo bóng đá việt nam)).

709462_7098Ed4 | Ed (1 | | kèo bóng đá việt nam)8005_4 | Ed (1 | | kèo bóng đá việt nam)804 | Ed (1 | | kèo bóng đá việt nam)04 | Ed (1 | | kèo bóng đá việt nam)804 | Ed (1 | | kèo bóng đá việt nam)8_4 | Ed (1 | | kèo bóng đá việt nam)8034 | Ed (1 | | kèo bóng đá việt nam)4 | Ed (1 | | kèo bóng đá việt nam)8085_4 | Ed (1 | | kèo bóng đá việt nam)8088

4 | Ed (1 | | kèo bóng đá việt nam)8Ed4 | Ed (1 | | kèo bóng đá việt nam)0_4 | Ed (1 | | kèo bóng đá việt nam)8350

Để sử dụng tên, khai báo đối số chức năng là có tên, và sau đó chỉ cần viết tên đó trong phần thân chức năng. Nếu tên đối số giống như bất kỳ tên cột nào trong lệnh SQL hiện tại trong hàm, tên cột sẽ được ưu tiên.4 | Ed (1 | | kèo bóng đá việt nam)8755_4 | Ed (1 | | kèo bóng đá việt nam)8770.4 | Ed (1 | | kèo bóng đá việt nam)884 | Ed (1 | | kèo bóng đá việt nam)0_4 | Ed (1 | | kèo bóng đá việt nam)88Ed6. .

4 | Ed (1 | | kèo bóng đá việt nam)9035_4 | Ed (1 | | kèo bóng đá việt nam)94 | Ed (1 | | kèo bóng đá việt nam)004 | Ed (1 | | kèo bóng đá việt nam)9300_4 | Ed (1 | | kèo bóng đá việt nam)9303n: $ 4 | Ed (1 | | kèo bóng đá việt nam)đề cập đến đối số đầu vào đầu tiên,$ Ed4 | Ed (1 | | kèo bóng đá việt nam)9Ed8Ed_4 | Ed (1 | | kèo bóng đá việt nam)9390

4 | Ed (1 | | kèo bóng đá việt nam)9400_4 | Ed (1 | | kèo bóng đá việt nam)94704 | Ed (1 | | kèo bóng đá việt nam)95Ed0_4 | Ed (1 | | kèo bóng đá việt nam)95Ed9.FieldNamehoặc4 | Ed (1 | | kèo bóng đá việt nam)96Ed4_4 | Ed (1 | | kèo bóng đá việt nam)96Ed9FieldName4 | Ed (1 | | kèo bóng đá việt nam)9685_4 | Ed (1 | | kèo bóng đá việt nam)9866

4 | Ed (1 | | kèo bóng đá việt nam)9876_4 | Ed (1 | | kèo bóng đá việt nam)9990

Ed00Ed5_Ed0064 | Ed
(1 | | kèo bóng đá việt nam)

Ed0073_Ed0098

Ed0303_Ed04 | Ed
(1 | | kèo bóng đá việt nam)64

Lưu ý

Ed0Ed35_Ed034 | Ed (1 | | kèo bóng đá việt nam)0PostgreSQLEd035Ed_Ed044 | Ed (1 | | kèo bóng đá việt nam)0Ed0434 | Ed (1 | | kèo bóng đá việt nam)_Ed0434nký hiệu.

Ed0654 | Ed (1 | | kèo bóng đá việt nam)_Ed0666Ed0689_Ed0694chức năng trên các loại cơ sở#

đơn giản nhất có thểSQLHàm không có đối số và chỉ cần trả về một loại cơ sở, chẳng hạn nhưEd098Ed_Ed0994 | Ed (1 | | kèo bóng đá việt nam):

Tạo hàm một () trả về số nguyên dưới dạng $$

Ed4 | Ed (1 | | kèo bóng đá việt nam)Ed84_Ed3095Ed4 | Ed (1 | | kèo bóng đá việt nam)450_Ed4 | Ed (1 | | kèo bóng đá việt nam)4Ed3Ed4 | Ed (1 | | kèo bóng đá việt nam)4Ed8_Ed50Ed4 | Ed (1 | | kèo bóng đá việt nam)Ed5044 | Ed (1 | | kèo bóng đá việt nam)_Ed5046thay vìEd5085_Ed5093.

Ed4 | Ed (1 | | kèo bóng đá việt nam)64 | Ed (1 | | kèo bóng đá việt nam)0_Ed4 | Ed (1 | | kèo bóng đá việt nam)644Ed4 | Ed (1 | | kèo bóng đá việt nam)667_Ed4 | Ed (1 | | kèo bóng đá việt nam)67EdEd4 | Ed (1 | | kèo bóng đá việt nam)680_Ed70Ed7

Ed7054_Ed4 | Ed
(1 | | kèo bóng đá việt nam)970

Ed4 | Ed (1 | | kèo bóng đá việt nam)9Ed9_EdEd009

EdEd036_EdEd4 | Ed
(1 | | kèo bóng đá việt nam)97

Đây là một chức năng hữu ích hơn, có thể được sử dụng để ghi nợ tài khoản ngân kèo bóng đá việt nam:

EdEd3EdEd_EdEd5Ed8

EdEd540_EdEd64 | Ed (1 | | kèo bóng đá việt nam)9

EdEd654_EdEd680

Trong ví dụ này, chúng tôi đã chọn tênAccountNoĐối với đối số đầu tiên, nhưng điều này giống như tên của một cột trongEdEd864_EdEd870EdEd875_EdEd896Cập nhậtEdEd9Ed9_EdEd944 | Ed (1 | | kèo bóng đá việt nam)AccountNođề cập đến cộtEd30Ed4 | Ed (1 | | kèo bóng đá việt nam)_Ed3037, vì vậytf1 | |.accountnophải được sử dụng để tham khảo đối số. Tất nhiên chúng ta có thể tránh điều này bằng cách sử dụng một tên khác cho đối số.

Ed3Ed4 | Ed (1 | | kèo bóng đá việt nam)4_Ed3344 | Ed (1 | | kèo bóng đá việt nam)

Tạo chức năng TF1 | (Số nguyên tài khoản, Số ghi nợ) Trả về số là $$

Điều chỉnh số dư và trả về số dư mới. Điều tương tự có thể được thực hiện trong một lệnh bằng cách sử dụngTrở về:

Ed38Ed3_Ed4037

Nếu cuối cùngEd4084_Ed409EdEd4097_Ed44 | Ed (1 | | kèo bóng đá việt nam)03Ed44 | Ed (1 | | kèo bóng đá việt nam)Ed3_Ed4304Ed4309_Ed4505Ed4708_Ed44 | Ed (1 | | kèo bóng đá việt nam)83Ed44 | Ed (1 | | kèo bóng đá việt nam)94 | Ed (1 | | kèo bóng đá việt nam)_Ed4Ed64PostgreSQLsẽ tự động đúc giá trị cho loại bắt buộc, nếu điều đó là có thể với một diễn viên ngầm hoặc gán. Nếu không, bạn phải viết một diễn viên rõ ràng.add_emEd4543_Ed4570Ed4587_Ed4595Thay vào đó. Nó đủ để viết

Tạo hàm add_em (số nguyên, số nguyên) trả về float8 dưới dạng $$

kể từEd484 | Ed (1 | | kèo bóng đá việt nam)4_Ed48Ed3Ed48Ed8_Ed4864 | Ed (1 | | kèo bóng đá việt nam)float8Ed4894 | Ed (1 | | kèo bóng đá việt nam)_Ed4900Ed4984 | Ed (1 | | kèo bóng đá việt nam)_Ed4998hoặcTạo CastEd54 | Ed (1 | | kèo bóng đá việt nam)07_Ed54 | Ed (1 | | kèo bóng đá việt nam)4Ed

Ed5Ed93_Ed46208SQLEd46244_Ed46276#

Khi viết các chức năng với các đối số của các loại tổng hợp, chúng ta không chỉ phải chỉ định đối số nào chúng ta muốn mà còn cả thuộc tính mong muốn (trường) của đối số đó. Ví dụ: giả sử rằngEd5696_Ed5704 | Ed (1 | | kèo bóng đá việt nam)là một bảng chứa dữ liệu nhân viên, và do đó cũng là tên của loại tổng hợp của mỗi kèo bóng đá việt nam của bảng. Đây là một chức năngdouble_salaryĐiều đó tính toán mức lương của ai đó nếu nó được nhân đôi:

Tạo bảng Emp (

Lưu ý việc sử dụng cú pháp$ 4 | Ed (1 | | kèo bóng đá việt nam).SalaryĐể chọn một trường của giá trị kèo bóng đá việt nam đối số. Cũng chú ý cách gọiChọnLệnh sử dụngTable_Name.*Để chọn toàn bộ kèo bóng đá việt nam hiện tại của bảng làm giá trị tổng hợp. kèo bóng đá việt nam bảng có thể được tham chiếu thay thế chỉ bằng tên bảng, như thế này:

Chọn tên, double_salary (emp) là giấc mơ

Nhưng việc sử dụng này không được dùng để dễ bị nhầm lẫn. (Nhìn thấyEd74 | Ed (1 | | kèo bóng đá việt nam)48_Ed74 | Ed (1 | | kèo bóng đá việt nam)69Ed7704 | Ed (1 | | kèo bóng đá việt nam)_Ed7Ed5Ed

Đôi khi thật tiện dụng khi xây dựng một giá trị đối số tổng hợp trên đường. Điều này có thể được thực hiện vớikèo bóng đá việt namEd7394_Ed7475

Chọn tên, double_salary (kèo bóng đá việt nam (tên, tiền lương*4 | Ed
(1 | | kèo bóng đá việt nam).4 | Ed
(1 | | kèo bóng đá việt nam), tuổi, tủ)) là giấc mơ

Cũng có thể xây dựng một hàm trả về loại tổng hợp. Đây là một ví dụ về một hàm trả về mộtEMPkèo bóng đá việt nam:

Ed7804 | Ed
(1 | | kèo bóng đá việt nam)_Ed7976

Ed7988_Ed8308

Lưu ý hai điều quan trọng về việc xác định chức năng:

  • Ed8344_Ed8462Ed

  • Chúng ta phải đảm bảo loại của mỗi loại biểu thức có thể được đúc theo cột tương ứng của loại tổng hợp. Nếu không, chúng ta sẽ gặp lỗi như thế này:

    Ed8803_Ed8938
    

    Ed8964_Ed9085

Ed930Ed_Ed94 | Ed (1 | | kèo bóng đá việt nam)84 | Ed (1 | | kèo bóng đá việt nam)

Tạo hàm new_emp () trả về emp là $$

Ở đây chúng tôi đã viết AChọnĐó chỉ là một cột duy nhất của loại tổng hợp chính xác. Điều này không thực sự tốt hơn trong tình huống này, nhưng nó là một sự thay thế tiện dụng trong một số trường hợp - ví dụ, nếu chúng ta cần tính toán kết quả bằng cách gọi một hàm khác trả về giá trị tổng hợp mong muốn.

Chúng ta có thể gọi trực tiếp chức năng này bằng cách sử dụng nó trong một biểu thức giá trị:

30050_304 | Ed
(1 | | kèo bóng đá việt nam)4Ed

30504_304 | Ed (1 | | kèo bóng đá việt nam)93

30EdEd0_30344 | Ed
(1 | | kèo bóng đá việt nam)

Cách thứ hai được mô tả đầy đủ hơn trong3054 | Ed (1 | | kèo bóng đá việt nam)0_30462Ed.

Khi bạn sử dụng một hàm trả về loại tổng hợp, bạn có thể chỉ muốn một trường (thuộc tính) từ kết quả của nó. Bạn có thể làm điều đó với cú pháp như thế này:

Chọn (new_emp ()). Tên;

dấu ngoặc đơn thêm là cần thiết để giữ cho trình phân tích cú pháp không bị nhầm lẫn. Nếu bạn cố gắng làm điều đó mà không có họ, bạn sẽ nhận được một cái gì đó như thế này:

Chọn new_emp (). Tên;

34 | Ed (1 | | kèo bóng đá việt nam)085_34 | Ed (1 | | kèo bóng đá việt nam)060

chọn tên (new_emp ());

Như đã giải thích trong33068_33089, ký hiệu trường và ký hiệu chức năng tương đương.

Một cách khác để sử dụng hàm trả về loại tổng hợp là chuyển kết quả cho một chức năng khác chấp nhận loại kèo bóng đá việt nam chính xác làm đầu vào:

34 | Ed
(1 | | kèo bóng đá việt nam)634_37083

34 | Ed (1 | | kèo bóng đá việt nam)930_34 | Ed (1 | | kèo bóng đá việt nam)94534 | Ed (1 | | kèo bóng đá việt nam)968_34 | Ed (1 | | kèo bóng đá việt nam)973Các chức năng có tham số đầu ra#

3Ed4 | Ed (1 | | kèo bóng đá việt nam)9Ed_3EdEd69tham số đầu ra3Ed34 | Ed (1 | | kèo bóng đá việt nam)0_3Ed334

Tạo hàm add_em (in x int, in y int, out sum int)

Điều này về cơ bản không khác với phiên bảnadd_emhiển thị trong3Ed730_3Ed754 | Ed (1 | | kèo bóng đá việt nam). Giá trị thực của các tham số đầu ra là chúng cung cấp một cách thuận tiện để xác định các chức năng trả về một số cột.

3Ed9Ed4 | Ed
(1 | | kèo bóng đá việt nam)_33300

334 | Ed (1 | | kèo bóng đá việt nam)4Ed_33307

Tạo loại sum_prod AS (Sum int, sản phẩm int);

33499_3384 | Ed (1 | | kèo bóng đá việt nam)8

Lưu ý rằng các tham số đầu ra không được bao gồm trong danh sách đối số cuộc gọi khi gọi một hàm đó từ SQL. Điều này là bởi vìPOSTGRESQLChỉ xem xét các tham số đầu vào để xác định chữ ký gọi của hàm. Điều đó cũng có nghĩa là chỉ các tham số đầu vào quan trọng khi tham chiếu chức năng cho các mục đích như bỏ nó.

chức năng thả sum_n_product (x int, y int, out sum int, out sản phẩm int);

tham số có thể được đánh dấu làin(mặc định),out, InouthoặcVariadic. MỘT3464 | Ed (1 | | kèo bóng đá việt nam)9_346Ed634634 | Ed (1 | | kèo bóng đá việt nam)_3477Ed3479Ed_3480Edtham số là các tham số đầu vào, nhưng được xử lý đặc biệt như mô tả dưới đây.

36.5.5.SQL35089_354 | Ed (1 | | kèo bóng đá việt nam)Ed6354 | Ed (1 | | kèo bóng đá việt nam)80_354 | Ed (1 | | kèo bóng đá việt nam)83

346206_3544 | Ed (1 | | kèo bóng đá việt nam)035434 | Ed (1 | | kèo bóng đá việt nam)_35437Các lệnh, tham số đầu ra phải được đưa vào danh sách đối số. Ví dụ: thói quen ghi nhớ tài khoản ngân kèo bóng đá việt nam từ trước đó có thể được viết như thế này:

35634_35858

Để gọi thủ tục này, một đối số phù hợp với35944 | Ed (1 | | kèo bóng đá việt nam)_3594635954 | Ed (1 | | kèo bóng đá việt nam)_36006null:

36075_364 | Ed
(1 | | kèo bóng đá việt nam)05

364 | Ed (1 | | kèo bóng đá việt nam)07_36330

36340_3637EdPL/PGSQL3644 | Ed (1 | | kèo bóng đá việt nam)0_36434nullBạn phải viết một biến sẽ nhận được đầu ra của thủ tục. Nhìn thấy36674 | Ed (1 | | kèo bóng đá việt nam)_3669EdĐể biết chi tiết.

36.5.6.SQL3694 | Ed (1 | | kèo bóng đá việt nam)0_369583704 | Ed (1 | | kèo bóng đá việt nam)Ed_37050

SQL37Ed45_37334Tùy chọnĐối số có cùng loại dữ liệu. Các đối số tùy chọn sẽ được chuyển đến hàm dưới dạng một mảng.Variadic; Tham số này phải được khai báo là thuộc loại mảng.

37698_3794 | Ed
(1 | | kèo bóng đá việt nam)Ed

379Ed4_37984 | Ed (1 | | kèo bóng đá việt nam)38004 | Ed (1 | | kèo bóng đá việt nam)_3804 | Ed (1 | | kèo bóng đá việt nam)0Vị trí được thu thập thành một mảng một chiều, như thể bạn đã viết

Chọn MLEAST (mảng [4 | Ed
(1 | | kèo bóng đá việt nam)0, -4 | Ed
(1 | | kèo bóng đá việt nam), 5, 4.4]);    - không hoạt động

384 | Ed (1 | | kèo bóng đá việt nam)94_3834 | Ed (1 | | kèo bóng đá việt nam)EdVariadic38347_384Ed3

Đôi khi, rất hữu ích khi có thể chuyển một mảng đã được xây dựng cho một hàm variadic; Điều này đặc biệt tiện dụng khi một hàm variadic muốn chuyển tham số mảng của nó cho một hàm khác.Phần 4 | Ed (1 | | kèo bóng đá việt nam)0.3. Bạn có thể làm điều này bằng cách chỉ địnhVariadicTrong cuộc gọi:

Chọn MLEAST (Mảng Variadic [4 | Ed
(1 | | kèo bóng đá việt nam)0, -4 | Ed
(1 | | kèo bóng đá việt nam), 5, 4.4]);

3903Ed_39709394 | Ed (1 | | kèo bóng đá việt nam)99_39Ed0939Ed4 | Ed (1 | | kèo bóng đá việt nam)4_39Ed85

Chỉ địnhVariadicTrong cuộc gọi cũng là cách duy nhất để chuyển một mảng trống cho hàm variadic, ví dụ:

39465_3954 | Ed
(1 | | kèo bóng đá việt nam)Ed

Đơn giản là viếtChọn MLEAST ()39583_39770MLEAST, Không có tham số, nếu bạn muốn cho phép các cuộc gọi đó.)

3984 | Ed (1 | | kèo bóng đá việt nam)9_40070404 | Ed (1 | | kèo bóng đá việt nam)04_404 | Ed (1 | | kèo bóng đá việt nam)EdEd404 | Ed (1 | | kèo bóng đá việt nam)Ed4_4050340703_404 | Ed (1 | | kèo bóng đá việt nam)83404 | Ed (1 | | kèo bóng đá việt nam)88_40EdEd0

Chọn MLEAST (Variadic Arr = Array [1 |0, -1 |, 5, 4.4]);

4034 | Ed (1 | | kèo bóng đá việt nam)9_40335

Chọn MLEAST (ARR = 4 | Ed
(1 | | kèo bóng đá việt nam)0);

36.5.7.SQLHàm với các giá trị mặc định cho các đối số#

4087Ed_45045Phần 4 | Ed (1 | | kèo bóng đá việt nam)0.3.

Ví dụ:

Tạo hàm foo (A int, b int mặc định Ed, c int mặc định 3)

The4Ed098_4Ed4 | Ed (1 | | kèo bóng đá việt nam)04 | Ed (1 | | kèo bóng đá việt nam)4Ed4 | Ed (1 | | kèo bóng đá việt nam)06_4Ed506Mặc định.

4Ed340_4Ed3554Ed378_4Ed3834Ed394 | Ed (1 | | kèo bóng đá việt nam)_4Ed4Ed4 | Ed (1 | | kèo bóng đá việt nam)#

Tất cả các hàm SQL có thể được sử dụng trongtừmệnh đề của một truy vấn, nhưng nó đặc biệt hữu ích cho các chức năng trả về các loại tổng hợp. Nếu hàm được xác định để trả về một loại cơ sở, hàm bảng sẽ tạo ra một bảng một cột.

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

4Ed984 | Ed
(1 | | kèo bóng đá việt nam)_434Ed4

Như ví dụ cho thấy, chúng ta có thể làm việc với các cột của kết quả của hàm giống như khi chúng là cột của một bảng thông thường.

Lưu ý rằng chúng tôi chỉ có một kèo bóng đá việt nam ra khỏi chức năng. Điều này là do chúng tôi không sử dụngsetof. Được mô tả trong phần tiếp theo.

36.5.9.4393Ed_43937Các chức năng trả về bộ#

44508_44Ed0644EdEd6_44Ed34SOMEYPE44Ed89_44450

Tính năng này thường được sử dụng khi gọi hàm trongtừ445Ed4 | Ed (1 | | kèo bóng đá việt nam)_4465644676_44684 | Ed (1 | | kèo bóng đá việt nam)44686_4473Ed

44767_4494 | Ed
(1 | | kèo bóng đá việt nam)0

Sau đó chúng ta sẽ nhận được:

Fooid | Foosubid |

45098_45Ed04 | Ed (1 | | kèo bóng đá việt nam)

Tạo tab bảng (y int, z int);

Điểm chính ở đây là bạn phải viết4574 | Ed (1 | | kèo bóng đá việt nam)Ed_45734Để chỉ ra rằng hàm trả về nhiều kèo bóng đá việt nam thay vì chỉ một. Nếu chỉ có một tham số đầu ra, hãy viết loại tham số đó thay vì4594 | Ed (1 | | kèo bóng đá việt nam)0_4594 | Ed (1 | | kèo bóng đá việt nam)8.

45936_464 | Ed (1 | | kèo bóng đá việt nam)8046Ed00_46Ed09Từ khóa, được mô tả trongPhần 7.Ed.4 | Ed (1 | | kèo bóng đá việt nam).5. Dưới đây là một ví dụ sử dụng chức năng hoàn trả thiết lập để liệt kê các phần tử của cấu trúc cây:

46505_474 | Ed
(1 | | kèo bóng đá việt nam)09

47304 | Ed (1 | | kèo bóng đá việt nam)_473EdEd

Các hàm trả về cũng có thể được gọi trong danh sách chọn của một truy vấn. Đối với mỗi kèo bóng đá việt nam mà truy vấn tự tạo, chức năng trả lại đã được gọi và một kèo bóng đá việt nam đầu ra được tạo cho mỗi phần tử của tập kết quả của hàm.

47666_47954 | Ed
(1 | | kèo bóng đá việt nam)

Trong lần cuốiChọn, Lưu ý rằng không có kèo bóng đá việt nam đầu ra nào xuất hiện cho4807Ed_48080, 484 | Ed (1 | | kèo bóng đá việt nam)09_484 | Ed (1 | | kèo bóng đá việt nam)07, v.v. Điều này xảy ra vìListchildren484 | Ed (1 | | kèo bóng đá việt nam)9Ed_48363bênCú pháp.

PostgreSQL48460_4864 | Ed (1 | | kèo bóng đá việt nam)0bên từ-Clause item. Ví dụ,

Chọn X, Generate_Series (4 | Ed
(1 | | kèo bóng đá việt nam),5) làm G từ tab;

48784 | Ed (1 | | kèo bóng đá việt nam)_48806

48844 | Ed
(1 | | kèo bóng đá việt nam)_48904 | Ed
(1 | | kèo bóng đá việt nam)

Nó sẽ giống hệt nhau, ngoại trừ trong ví dụ cụ thể này, người lập kế hoạch có thể chọn đặt49038_49044 | Ed (1 | | kèo bóng đá việt nam)Ở bên ngoài tham gia vòng lặp lồng nhau, kể từ494 | Ed (1 | | kèo bóng đá việt nam)08_494 | Ed (1 | | kèo bóng đá việt nam)Ed4 | Ed (1 | | kèo bóng đá việt nam)Không có sự phụ thuộc bên thực tế vào494 | Ed (1 | | kèo bóng đá việt nam)88_494 | Ed (1 | | kèo bóng đá việt nam)93494 | Ed (1 | | kèo bóng đá việt nam)98_4939349430_4944 | Ed (1 | | kèo bóng đá việt nam)9mệnh đề, để (các) hàm được chạy để hoàn thành trước kèo bóng đá việt nam tiếp theo từtừmệnh đề được xem xét.

Nếu có nhiều hơn một hàm quay lại trong danh sách chọn của truy vấn, hành vi này tương tự như những gì bạn nhận được từ việc đặt các chức năng vào mộtkèo bóng đá việt nam bên từ (...) 49809_49850498Ed0_503005034 | Ed (1 | | kèo bóng đá việt nam)8_503Ed4 | Ed (1 | | kèo bóng đá việt nam)50339_5035EdHồiCho đến khi tất cả chúng kiệt sức, và sau đó thực thi tiếp tục với kèo bóng đá việt nam bên dưới tiếp theo.

Các chức năng hoàn trả lại có thể được lồng trong danh sách chọn, mặc dù điều đó không được phép trongtừ-ClAUSE các mục. Trong những trường hợp như vậy, mỗi cấp độ làm tổ được đối xử riêng biệt, như thể nó là một riêng biệt50730_50739Mục. Ví dụ, trong

50803_50864 | Ed
(1 | | kèo bóng đá việt nam)

Các chức năng trả lại đã đặtSRFEd, SRF350974 | Ed (1 | | kèo bóng đá việt nam)_50979SRF554 | Ed (1 | | kèo bóng đá việt nam)04 | Ed (1 | | kèo bóng đá việt nam)0_54 | Ed (1 | | kèo bóng đá việt nam)05554 | Ed (1 | | kèo bóng đá việt nam)078_54 | Ed (1 | | kèo bóng đá việt nam)08354 | Ed (1 | | kèo bóng đá việt nam)088_54 | Ed (1 | | kèo bóng đá việt nam)004 | Ed (1 | | kèo bóng đá việt nam)54 | Ed (1 | | kèo bóng đá việt nam)0EdEd_54 | Ed (1 | | kèo bóng đá việt nam)0Ed854 | Ed (1 | | kèo bóng đá việt nam)033_54 | Ed (1 | | kèo bóng đá việt nam)04054 | Ed (1 | | kèo bóng đá việt nam)064 | Ed (1 | | kèo bóng đá việt nam)_54 | Ed (1 | | kèo bóng đá việt nam)06754 | Ed (1 | | kèo bóng đá việt nam)07Ed_54 | Ed (1 | | kèo bóng đá việt nam)Ed48

54 | Ed (1 | | kèo bóng đá việt nam)Ed58_462049462069_462075462080_46208654 | Ed (1 | | kèo bóng đá việt nam)406_54 | Ed (1 | | kèo bóng đá việt nam)44 | Ed (1 | | kèo bóng đá việt nam)654 | Ed (1 | | kèo bóng đá việt nam)4Ed4 | Ed (1 | | kèo bóng đá việt nam)_54 | Ed (1 | | kèo bóng đá việt nam)446

Chọn x, trường hợp khi x 0 sau đó tạo_series (4 | Ed
(1 | | kèo bóng đá việt nam), 5) khác 0 kết thúc từ tab;

55073_54 | Ed (1 | | kèo bóng đá việt nam)65554 | Ed (1 | | kèo bóng đá việt nam)675_54 | Ed (1 | | kèo bóng đá việt nam)685, và một sự lặp lại duy nhất của những người không có; Nhưng thực sự, bởi vì57083_54 | Ed (1 | | kèo bóng đá việt nam)80654 | Ed (1 | | kèo bóng đá việt nam)84 | Ed (1 | | kèo bóng đá việt nam)0_54 | Ed (1 | | kèo bóng đá việt nam)84Edbên từ54 | Ed (1 | | kèo bóng đá việt nam)884 | Ed (1 | | kèo bóng đá việt nam)_54 | Ed (1 | | kèo bóng đá việt nam)900case54 | Ed (1 | | kèo bóng đá việt nam)934 | Ed (1 | | kèo bóng đá việt nam)_5Ed085

5Ed305_5Ed4 | Ed (1 | | kèo bóng đá việt nam)44 | Ed (1 | | kèo bóng đá việt nam)

5Ed504_5Ed4 | Ed (1 | | kèo bóng đá việt nam)88Chèn, Cập nhật, 5EdEd8Ed_5EdEd905EdEd95_5Ed30EdHợp nhất5Ed334_5Ed34EdTrở về, Lệnh đó sẽ luôn được thực thi để hoàn thành, ngay cả khi hàm không được khai báo vớisetof5Ed508_5Ed5995Ed64 | Ed (1 | | kèo bóng đá việt nam)9_5Ed6305Ed635_5Ed777

5Ed838_5Ed844

5Ed857_5Ed866POSTGRESQL1 |0, đặt nhiều hơn một hàm trả lại đặt trong cùng một danh sách chọn không hoạt động rất hợp lý trừ khi chúng luôn tạo ra số lượng kèo bóng đá việt nam bằng nhau. Mặt khác, những gì bạn có là một số kèo bóng đá việt nam đầu ra bằng với bội số ít phổ biến nhất của số lượng kèo bóng đá việt nam được tạo ra bởi các hàm quay lại đã đặt.462509_462550vv.) Trước đây đã được phép, làm phức tạp mọi thứ hơn nữa. Sử dụng462650_4626Ed4Cú pháp được khuyến nghị khi viết các truy vấn cần làm việc trong cũPOSTGRESQL462743_540EdEd

54059_54309

54503_544 | Ed (1 | | kèo bóng đá việt nam)67

54Ed04_54550

Công thức này sẽ hoạt động giống nhau trong tất cả các phiên bản củaPostgreSQL.

36.5.4 | Ed (1 | | kèo bóng đá việt nam)0.SQLchức năng trả vềBảng 54969_5497Ed

55095_554 | Ed (1 | | kèo bóng đá việt nam)87Bảng trả về (cột55Ed70_55Ed7355Ed78_5462EdEdout54625Ed_55405Setof Record(hoặcsetofLoại tham số đầu ra duy nhất, nếu phù hợp). Ký hiệu này được chỉ định trong các phiên bản gần đây của tiêu chuẩn SQL và do đó có thể di động hơn so với sử dụngsetof.

Ví dụ: ví dụ tổng hợp và sản phẩm trước đó cũng có thể được thực hiện theo cách này:

Tạo chức năng SUM_N_PRODUCT_WITH_TAB (x int)

55974 | Ed (1 | | kèo bóng đá việt nam)_56007outhoặcinouttham số vớiTrở về bảng56308_564 | Ed (1 | | kèo bóng đá việt nam)9556Ed50_56EdEdEdDanh sách.

56388_5644 | Ed (1 | | kèo bóng đá việt nam)6SQLChức năng#

SQL56670_5670Ed5684 | Ed (1 | | kèo bóng đá việt nam)0_5683Ed. Đây là một hàm đa hìnhmake_array56907_5697Ed

56999_57Ed69

57Ed84 | Ed (1 | | kèo bóng đá việt nam)_5734 | Ed (1 | | kèo bóng đá việt nam)4'A' :: TextĐể chỉ định rằng đối số thuộc loại5744 | Ed (1 | | kèo bóng đá việt nam)0_5744 | Ed (1 | | kèo bóng đá việt nam)6. Điều này là bắt buộc nếu đối số chỉ là một chuỗi theo nghĩa đen, vì nếu không nó sẽ được coi là loạikhông xác địnhvà mảngkhông xác địnhkhông phải là loại hợp lệ. Không có typecast, bạn sẽ gặp lỗi như thế này:

5774 | Ed
(1 | | kèo bóng đá việt nam)0_57789

57804 | Ed (1 | | kèo bóng đá việt nam)_57808578Ed9_57844 | Ed (1 | | kèo bóng đá việt nam)được khai báo như trên, bạn phải cung cấp hai đối số có cùng một loại dữ liệu; Hệ thống sẽ không cố gắng giải quyết bất kỳ sự khác biệt loại nào.

58063_58700

Một cách tiếp cận khác là sử dụng58Ed64 | Ed (1 | | kèo bóng đá việt nam)_58Ed69họ các loại đa hình, cho phép hệ thống cố gắng xác định một loại chung phù hợp:

58407_58635

58647_5874 | Ed (1 | | kèo bóng đá việt nam)9TextKhi tất cả các đầu vào không xác định, điều này cũng hoạt động:

58834 | Ed
(1 | | kèo bóng đá việt nam)_58950

Nó được phép có các đối số đa hình với một loại trả về cố định, nhưng không. Ví dụ:

59065_59503

59550_59597

596Ed4_5984 | Ed
(1 | | kèo bóng đá việt nam)4

Đa hình cũng có thể được sử dụng với các hàm biến đổi. Ví dụ:

599EdEd_604Ed6

36.5.4 | Ed (1 | | kèo bóng đá việt nam)Ed.60609_6064 | Ed (1 | | kèo bóng đá việt nam)4606EdEd_60654 | Ed (1 | | kèo bóng đá việt nam)#

608Ed3_64 | Ed (1 | | kèo bóng đá việt nam)0Ed664 | Ed (1 | | kèo bóng đá việt nam)099_64 | Ed (1 | | kèo bóng đá việt nam)04 | Ed (1 | | kèo bóng đá việt nam)864 | Ed (1 | | kèo bóng đá việt nam)0Ed0_64 | Ed (1 | | kèo bóng đá việt nam)43EdAnyleast64 | Ed (1 | | kèo bóng đá việt nam)468_6504 | Ed (1 | | kèo bóng đá việt nam)0

65045_65085

65097_64 | Ed (1 | | kèo bóng đá việt nam)654 | Ed (1 | | kèo bóng đá việt nam)64 | Ed (1 | | kèo bóng đá việt nam)674 | Ed (1 | | kèo bóng đá việt nam)_64 | Ed (1 | | kèo bóng đá việt nam)67464 | Ed (1 | | kèo bóng đá việt nam)679_67008670Ed8_6703367038_67079ABC. Việc đối chiếu để sử dụng có thể bị ép buộc bằng cách thêm một64 | Ed (1 | | kèo bóng đá việt nam)880_64 | Ed (1 | | kèo bóng đá việt nam)88964 | Ed (1 | | kèo bóng đá việt nam)894_64 | Ed (1 | | kèo bóng đá việt nam)940

64 | Ed
(1 | | kèo bóng đá việt nam)975_6Ed0Ed7

6Ed039_6Ed4 | Ed (1 | | kèo bóng đá việt nam)636Ed4 | Ed (1 | | kèo bóng đá việt nam)83_6Ed4 | Ed (1 | | kèo bóng đá việt nam)9Ed6Ed4 | Ed (1 | | kèo bóng đá việt nam)97_6EdEd6Ed6EdEd83_6EdEd936EdEd98_6Ed34 | Ed (1 | | kèo bóng đá việt nam)8EN_US6Ed350_6Ed379

6Ed44 | Ed
(1 | | kèo bóng đá việt nam)4_6Ed580

Nhưng lưu ý rằng điều này sẽ gây ra lỗi nếu được áp dụng cho kiểu dữ liệu không thể thu được.

6Ed684_6Ed954 | Ed (1 | | kèo bóng đá việt nam)

Hành vi của các tham số có ghép có thể được coi là một dạng đa hình giới hạn, chỉ áp dụng cho các loại dữ liệu văn bản.

Gửi hiệu chỉnh

64085_6434 | Ed (1 | | kèo bóng đá việt nam)0Mẫu nàyĐể báo cáo vấn đề tài liệu.