Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
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ùng kèo bóng đá cúp c2 trang chohiện tạiPhiên bản hoặc kèo bóng đá cúp c2 trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

4.2. Biểu kèo bóng đá cúp c2 giá trị

10702_10791Chọnlệnh, như Giá trị cột mới trongChènhoặcCập nhậthoặc trong các điều kiện tìm kiếm trong một số lệnh. Kết quả của biểu kèo bóng đá cúp c2 giá trị đôi khi được gọi làvô hướng, để phân biệt nó với kết quả của một biểu kèo bóng đá cúp c2 bảng (là một bảng). Biểu kèo bóng đá cúp c2 giá trị là do đó cũng được gọi làBiểu kèo bóng đá cúp c2 vô hướng(hoặc thậm chí đơn giản làBiểu kèo bóng đá cúp c2). Các expression syntax allows the calculation of values from primitive các bộ phận sử dụng số học, logic, tập hợp và các hoạt động khác.

Biểu kèo bóng đá cúp c2 giá trị là một trong những điều sau:

  • kèo bóng đá cúp c2 giá trị không đổi hoặc theo nghĩa đen

  • tham chiếu cột

  • Tham chiếu tham số vị trí, trong phần thân của hàm Định nghĩa hoặc tuyên bố đã chuẩn bị

  • Biểu kèo bóng đá cúp c2 được đăng ký

  • Biểu kèo bóng đá cúp c2 lựa chọn trường

  • kèo bóng đá cúp c2 người vận hành gọi

  • kèo bóng đá cúp c2 chức năng gọi

  • Biểu kèo bóng đá cúp c2 tổng hợp

  • 11878_11902

  • kèo bóng đá cúp c2 loại đúc

  • Biểu kèo bóng đá cúp c2 đối chiếu

  • 11990_12009

  • Trình xây dựng mảng

  • Trình xây dựng hàng

  • Một biểu kèo bóng đá cúp c2 giá trị khác trong ngoặc đơn (được sử dụng để nhóm Expressions và ghi đè ưu tiên)

Ngoài danh sách này, còn có một số cấu trúc mà có thể được phân loại là một biểu kèo bóng đá cúp c2 nhưng không tuân theo bất kỳ vị tướng nào Quy tắc cú pháp. Chúng thường có ngữ nghĩa của một chức năng hoặc toán tử và được giải thích ở vị trí thích hợp trongChương 9. kèo bóng đá cúp c2 ví dụ làlà nullmệnh đề.

Chúng ta đã thảo luận các hằng số trongPhần 4.1.2. Các phần sau thảo luận về các tùy chọn còn lại.

4.2.1. Tài liệu tham khảo cột

kèo bóng đá cúp c2 cột có thể được tham chiếu ở dạng:

Tương quan.CộtName

Tương quanlà tên của kèo bóng đá cúp c2 bảng (có thể đủ điều kiện với kèo bóng đá cúp c2 tên lược đồ) hoặc bí danh cho kèo bóng đá cúp c2 bảng được xác định bằng phương tiệntừmệnh đề. Tên tương quan và dấu chấm tách có thể được bỏ qua nếu Tên cột là duy nhất trên tất cả các bảng đang được sử dụng trong Truy vấn hiện tại. (Xem thêmChương 7.)

4.2.2. Vị trí Tham số

Tham chiếu tham số vị trí được sử dụng để chỉ ra giá trị Điều đó được cung cấp bên ngoài cho một câu lệnh SQL. Tham số là Được sử dụng trong các định nghĩa chức năng SQL và trong các truy vấn đã chuẩn bị. Một số Thư viện máy khách cũng hỗ trợ chỉ định các giá trị dữ liệu riêng biệt Từ chuỗi lệnh SQL, trong đó các tham số trường hợp được sử dụng để Tham khảo các giá trị dữ liệu ngoại tuyến. Hình kèo bóng đá cúp c2 của một tham số Tham khảo là:

$Số

Ví dụ: xem xét định nghĩa của kèo bóng đá cúp c2 hàm,Dept, như:

Tạo chức năng Dept (văn bản) Trả về Dept
    Như $$ Chọn * Từ Dept WHERE Tên = $ 1 $$
    Ngôn ngữ SQL;

ở đây$ 1Tài liệu tham khảo giá trị của Đối số chức năng đầu tiên bất cứ khi nào hàm được gọi.

4.2.3. Đăng ký

14601_14723

Biểu kèo bóng đá cúp c2[Đăng ký]

hoặc nhiều phần tử liền kề (kèo bóng đá cúp c2"Mảng lát cắt") có thể được trích xuất bằng cách viết

Biểu kèo bóng đá cúp c2[Lower_SubScript:Upper_subscript]

(ở đây, dấu ngoặc[]có nghĩa là xuất hiện theo nghĩa đen.) MỗiĐăng kýBản thân nó là một biểu kèo bóng đá cúp c2, phải mang lại giá trị số nguyên.

Nói chung là mảngBiểu kèo bóng đá cúp c2phải được đặt dấu ngoặc đơn, nhưng dấu ngoặc đơn có thể được bỏ qua khi Biểu kèo bóng đá cúp c2 được đăng ký chỉ là một tham chiếu cột hoặc tham số vị trí. Ngoài ra, nhiều chỉ số có thể được nối Khi mảng ban đầu là đa chiều. Ví dụ:

MyTable.ArrayColumn [4]
mytable.two_d_column [17] [34]
$ 1 [10:42]
(mảng (a, b)) [42]

dấu ngoặc đơn trong ví dụ cuối cùng được yêu cầu. Nhìn thấyPhần 8.15Để biết thêm về mảng.

4.2.4. Lựa chọn trường

Nếu biểu kèo bóng đá cúp c2 mang lại giá trị của loại tổng hợp (loại hàng), Sau đó, một trường cụ thể của hàng có thể được trích xuất bằng cách viết

Biểu kèo bóng đá cúp c2.FieldName

nói chung hàngBiểu kèo bóng đá cúp c2phải được đặt dấu ngoặc đơn, nhưng dấu ngoặc đơn có thể được bỏ qua khi Biểu kèo bóng đá cúp c2 được chọn từ chỉ là một tham chiếu bảng hoặc tham số vị trí. Ví dụ:

16518_16574

(Do đó, tham chiếu cột đủ điều kiện thực sự chỉ là kèo bóng đá cúp c2 đặc biệt trường hợp của cú pháp lựa chọn trường.) kèo bóng đá cúp c2 trường hợp đặc biệt quan trọng là trích xuất kèo bóng đá cúp c2 trường từ cột bảng có tổng hợp kiểu:

(Compositecol) .Somefield
(mytable.compositecol) .Somefield

16878_16927Compositecollà tên cột không phải tên bảng, hoặc đóMyTablelà tên bảng không phải Tên lược đồ trong trường hợp thứ hai.

Bạn có thể yêu cầu tất cả các trường có giá trị tổng hợp bằng cách viết.*:

(Compositecol).*

Ký hiệu này hoạt động khác nhau tùy thuộc vào ngữ cảnh; nhìn thấyPhần 8.16.5cho chi tiết.

4.2.5. Nhà điều hành Cấp

Có ba cú pháp có thể cho người vận hành Lời cầu khẩn:

Biểu kèo bóng đá cúp c2 Nhà điều hành Biểu kèo bóng đá cúp c2(toán tử nhị phân nhị phân)
Nhà điều hành Biểu kèo bóng đá cúp c2(toán tử tiền tố unary)
Biểu kèo bóng đá cúp c2 Nhà điều hành(toán tử postfix unary)
trong đóNhà điều hànhMã thông báo theo sau các quy tắc cú pháp củaPhần 4.1.3,, hoặc là kèo bóng đá cúp c2 trong những từ khóa, hoặckhônghoặc là một người đủ điều kiện Tên toán tử trong kèo bóng đá cúp c2 mẫu:
toán tử (lược đồ.OperatorName)

18617_18760Chương 9mô tả toán tử tích hợp.

4.2.6. Các cuộc gọi chức năng

18992_19146

function_name([Biểu kèo bóng đá cúp c2[, Biểu kèo bóng đá cúp c2...]])

Ví dụ: sau đây tính toán căn bậc hai của 2:

SQRT (2)

Danh sách các chức năng tích hợp trongChương 9. Các chức năng khác có thể được thêm vào bởi người dùng.

Khi phát hành truy vấn trong cơ sở dữ liệu trong đó kèo bóng đá cúp c2 số người dùng không tin tưởng Người dùng khác, quan sát các biện pháp phòng ngừa bảo mật từPhần 10.319778_19809

Các đối số có thể tùy ý có tên được đính kèm. Nhìn thấyPhần 4.3Để biết chi tiết.

Lưu ý:kèo bóng đá cúp c2 hàm có kèo bóng đá cúp c2 đối số duy nhất về Loại tổng hợp có thể được gọi là bằng cách sử dụng lựa chọn trường cú pháp và ngược lại lựa chọn trường có thể được viết bằng chức năng phong cách. Nghĩa là, các ký hiệucol (bảng)Bảng.colcó thể hoán đổi cho nhau. Cái này Hành vi không phải là SQL-Standard nhưng được cung cấp trongPostgreSQLBởi vì nó cho phép sử dụng các chức năng để mô phỏng"Các trường được tính toán". Để biết thêm Thông tin xemPhần 8.16.5.

4.2.7. Biểu kèo bóng đá cúp c2 tổng hợp

ANBiểu kèo bóng đá cúp c2 tổng hợpđại diện cho ứng dụng hàm tổng hợp trên các hàng được chọn bởi một truy vấn. Một hàm tổng hợp làm giảm nhiều đầu vào thành một Giá trị đầu ra, chẳng hạn như tổng hoặc trung bình của các đầu vào. Cú pháp của một biểu kèo bóng đá cúp c2 tổng hợp là một trong những điều sau đây:

tổng hợp_name(Biểu kèo bóng đá cúp c2[, ...] [order_by_clause])Tổng hợp_name(tất cảBiểu kèo bóng đá cúp c2[, ...] [order_by_clause])tổng hợp_name(khác biệtBiểu kèo bóng đá cúp c2[, ...] [order_by_clause])tổng hợp_name( *)

WHEREtổng hợp_namelà a Tổng hợp được xác định trước đó (có thể đủ điều kiện với kèo bóng đá cúp c2 lược đồ tên),Biểu kèo bóng đá cúp c221798_21909order_by_clauselà kèo bóng đá cúp c2 tùy chọnĐặt hàng bởimệnh đề như mô tả bên dưới.

Hình kèo bóng đá cúp c2 biểu kèo bóng đá cúp c2 tổng hợp đầu tiên gọi tổng hợp một lần cho mỗi hàng đầu vào. Mẫu thứ hai giống như hình kèo bóng đá cúp c2 thứ nhất, từtất cảlà mặc định. Mẫu thứ ba gọi tổng hợp một lần cho từng giá trị riêng biệt của Biểu kèo bóng đá cúp c2 (hoặc tập hợp các giá trị riêng biệt, cho nhiều biểu kèo bóng đá cúp c2) tìm thấy trong các hàng đầu vào. Mẫu cuối cùng gọi tổng hợp một lần cho mỗi hàng đầu vào; Vì không có giá trị đầu vào cụ thể được chỉ định, Nó thường chỉ hữu ích choCount (*)Hàm tổng hợp.

hầu hết các hàm tổng hợp bỏ qua các đầu vào null, sao cho các hàng trong mà một hoặc nhiều biểu kèo bóng đá cúp c2 mang lại NULL được loại bỏ. Điều này có thể được coi là đúng, trừ khi có quy định khác, cho tất cả tập hợp tích hợp.

Ví dụ,Count (*)mang lại tổng số số lượng hàng đầu vào;Count (f1)mang lại Số lượng hàng đầu vào trong đóF1IS Không null, kể từĐếmbỏ qua nulls; VàCount (khác biệt F1)mang lại số của các giá trị không null khác biệt củaF1.

Thông thường, các hàng đầu vào được đưa vào hàm tổng hợp trong kèo bóng đá cúp c2 đơn đặt hàng không xác định. Trong nhiều trường hợp, điều này không quan trọng; vì ví dụ,min​​tạo ra kết quả tương tự Không có vấn đề gì nó nhận được các đầu vào. Tuy nhiên, kèo bóng đá cúp c2 số Các hàm tổng hợp (chẳng hạn nhưmảng_aggString_agg) tạo ra kết quả phụ thuộc vào thứ tự của các hàng đầu vào. Khi sử dụng tổng hợp như vậy, không bắt buộcorder_by_clausecó thể Được sử dụng để chỉ định thứ tự mong muốn. Theorder_by_clausecó cùng cú pháp như đối với kèo bóng đá cúp c2 Cấp độ truy vấnĐặt hàng bởimệnh đề, như mô tả TRONGPhần 7.5, ngoại trừ điều đó Biểu kèo bóng đá cúp c2 luôn chỉ là biểu kèo bóng đá cúp c2 và không thể là cột đầu ra tên hoặc số. Ví dụ:

Chọn Array_AGG (kèo bóng đá cúp c2 đơn đặt hàng của B Desc) từ bảng;

Khi xử lý các chức năng tổng hợp đa đối số rằngĐặt hàng bởiĐiều khoản đi sau tất cả các lập luận tổng hợp. Ví dụ: viết cái này:

Chọn String_agg (a, ',' thứ tự bằng a) từ bảng;

Không phải thế này:

chọn String_agg (kèo bóng đá cúp c2 thứ tự bằng a, ',') từ bảng;  -- không đúng

cái sau có hiệu lực về mặt cú pháp, nhưng nó đại diện cho kèo bóng đá cúp c2 cuộc gọi của kèo bóng đá cúp c2 Chức năng tổng hợp đơn lẻ với haiĐặt hàng bởiKhóa (cái thứ hai khá vô dụng Vì nó là kèo bóng đá cúp c2 hằng số).

nếukhác biệtđược chỉ định ngoài MỘTorder_by_clause, sau đó tất cảĐặt hàng bởiBiểu kèo bóng đá cúp c2 phải phù hợp với thông thường lập luận của tổng hợp; đó là, bạn không thể sắp xếp trên một Biểu kèo bóng đá cúp c2 không được bao gồm trongkhác biệtDanh sách.

Lưu ý:Khả năng chỉ định cả haikhác biệtĐặt hàng bởiTrong kèo bóng đá cúp c2 Hàm tổng hợp là kèo bóng đá cúp c2PostgreSQLphần mở rộng.

Các hàm tổng hợp được xác định trước được mô tả trongPhần 9.20. Tổng hợp khác Các chức năng có thể được thêm bởi người dùng.

Một biểu kèo bóng đá cúp c2 tổng hợp chỉ có thể xuất hiện trong danh sách kết quả hoặcmệnh đề AChọnLệnh. Nó bị cấm trong các điều khoản khác, chẳng hạn nhưWHERE, bởi vì những điều khoản đó là được đánh giá kèo bóng đá cúp c2 cách hợp lý trước khi kết quả của cốt liệu là được hình thành.

Khi biểu kèo bóng đá cúp c2 tổng hợp xuất hiện trong một trình điều khiển con (xemPhần 4.2.11tỷ lệ kèo bóng), Tổng hợp thường được đánh giá trên các hàng của truy vấn con. Nhưng một ngoại lệ xảy ra nếu các đối số của tổng hợp chỉ chứa Các biến cấp ngoài: Tổng hợp sau đó thuộc về gần nhất Mức bên ngoài như vậy, và được đánh giá trên các hàng của truy vấn đó. Các toàn bộ biểu kèo bóng đá cúp c2 tổng hợp sau đó là một tham chiếu bên ngoài cho Trình điều khiển con xuất hiện và hoạt động như một không đổi so với bất kỳ ai Đánh giá của truy vấn con đó. Hạn chế về chỉ xuất hiện Trong danh sách kết quả hoặc26584_26664

4.2.8. Hàm Window Calls

AGọi chức năng cửa sổđại diện cho áp dụng kèo bóng đá cúp c2 hàm giống như tổng hợp trên kèo bóng đá cúp c2 phần của Hàng được chọn bởi kèo bóng đá cúp c2 truy vấn. Không giống như các cuộc gọi chức năng tổng hợp thông thường, Điều này không gắn liền với việc nhóm các hàng đã chọn thành kèo bóng đá cúp c2 Hàng đầu ra - Mỗi hàng vẫn riêng biệt trong đầu ra truy vấn. Tuy nhiên Hàm cửa sổ có thể quét tất cả các hàng sẽ là kèo bóng đá cúp c2 phần của nhóm hàng hiện tại theo đặc tả nhóm (Phân vùng bởiLiệt kê) chức năng cửa sổ gọi. Cú pháp của cuộc gọi chức năng cửa sổ là kèo bóng đá cúp c2 trong những tiếp theo:

function_name([Biểu kèo bóng đá cúp c2[, Biểu kèo bóng đá cúp c2...]]) trênwindow_name
function_name([Biểu kèo bóng đá cúp c2[, Biểu kèo bóng đá cúp c2...]]) Over (27943_27962)function_name( *) trênwindow_name
function_name( *) Over (window_definition)

WHEREwindow_definitioncó Cú pháp

[hiện tại_window_name]
[Phân vùng bởiBiểu kèo bóng đá cúp c2[, ...]]
[Đặt hàng bởiBiểu kèo bóng đá cúp c2​​[ASC | Desc | Sử dụngNhà điều hành] [NULLS Đầu tiên | CUỐI CÙNG  ] [, ...] ]
[frame_clause]

và tùy chọnframe_clausecó thể là kèo bóng đá cúp c2 trong

phạm vi | Hàngframe_startphạm vi | Hàng giữaframe_startframe_end

WHEREframe_startframe_endcó thể là kèo bóng đá cúp c2 trong

không bị ràng buộc trướcgiá trịtrước
Hàng hiện tạigiá trịsau đây
Không bị ràng buộc sau

ở đây,Biểu kèo bóng đá cúp c2đại diện cho bất kỳ Biểu kèo bóng đá cúp c2 giá trị không chứa hàm cửa sổ cuộc gọi.

window_namelà tham chiếu đến A Thông số kỹ thuật được đặt tên được xác định trong truy vấn củaWindowmệnh đề. Ngoài ra, đầy đủwindow_definitioncó thể được đưa ra trong dấu ngoặc đơn, sử dụng cùng kèo bóng đá cúp c2 cú pháp như để xác định kèo bóng đá cúp c2 cửa sổ được đặt tên trongWindowmệnh đề; XemChọnTrang tham khảo để biết chi tiết. Nó có giá trị chỉ ra rằngOver wnamekhông tương đương vớiOver (wname); các sau này ngụ ý sao chép và sửa đổi định nghĩa cửa sổ và sẽ bị từ chối nếu đặc điểm kỹ thuật cửa sổ được tham chiếu bao gồm kèo bóng đá cúp c2 mệnh đề khung.

ThePhân vùng bởiNhóm tùy chọn Các hàng của truy vấn thànhphân vùng, đó là được xử lý riêng bởi hàm cửa sổ.Phân vùng bởiHoạt động tương tự như mức truy vấnNhóm bởimệnh đề, ngoại trừ điều đó Biểu kèo bóng đá cúp c2 luôn chỉ là biểu kèo bóng đá cúp c2 và không thể là cột đầu ra tên hoặc số. Không cóPhân vùng bởi,, Tất cả các hàng được sản xuất bởi truy vấn được coi là kèo bóng đá cúp c2 phân vùng duy nhất. TheĐặt hàng bởiTùy chọn xác định thứ tự trong đó các hàng của kèo bóng đá cúp c2 phân vùng được xử lý bởi cửa sổ chức năng. Nó hoạt động tương tự như cấp truy vấnĐặt hàng bởimệnh đề, nhưng tương tự như vậy không thể sử dụng Tên hoặc số cột đầu ra. Không cóĐặt hàng QUA, hàng được xử lý theo thứ tự không xác định.

Theframe_clauseChỉ định tập hợp các hàng cấu thànhkhung cửa sổ,, đó là kèo bóng đá cúp c2 tập hợp con của phân vùng hiện tại, cho những cửa sổ đó Các chức năng hoạt động trên khung thay vì toàn bộ phân vùng. Các khung có thể được chỉ định trong kèo bóng đá cúp c2 trong haiphạm vihoặchàng31304_31346frame_startđếnframe_end. Nếu nhưframe_endbị bỏ qua, nó mặc định làhàng hiện tại.

Aframe_startcủakhông bị ràng buộc trướccó nghĩa là khung bắt đầu bằng Hàng đầu tiên của phân vùng và tương tự Aframe_endcủaKhông giới hạn TIẾP THEOcó nghĩa là khung kết thúc bằng hàng cuối cùng của phân vùng.

inphạm viMODE, Aframe_startcủahiện tại HÀNG NGANGCó nghĩa là khung bắt đầu bằng hàng đầu tiên của hàng hiện tạiPEERhàng (kèo bóng đá cúp c2 hàng đóĐặt hàng bởixem xét tương đương với hàng hiện tại), Trong khi aframe_endcủahàng hiện tạiCó nghĩa là khung kết thúc với phần cuối cùng Tương đương ngang hàng. TRONGhàngMode,hàng hiện tạiĐơn giản là hàng hiện tại.

Thegiá trị trướcgiá trị sauCác trường hợp hiện chỉ được phép TRONGhàngchế độ. Họ chỉ ra rằng khung bắt đầu hoặc kết thúc số lượng hàng được chỉ định trước hoặc sau hàng hiện tại.giá trịphải là một Biểu kèo bóng đá cúp c2 số nguyên không chứa bất kỳ biến nào, tổng hợp chức năng, hoặc chức năng cửa sổ. Giá trị không được null hoặc tiêu cực; Nhưng nó có thể bằng không, chỉ chọn hiện tại hàng ngang.

Tùy chọn đóng khung mặc định làPhạm vi Không bị ràng buộc trước, giống nhưPhạm vi giữa hàng trước và hàng hiện tại không được giới hạn. VớiĐặt hàng bởi, Điều này đặt khung hình thành Tất cả các hàng từ phân vùng khởi động qua hàng cuối cùng của hàng hiện tại ngang hàng. Không cóĐặt hàng bởi33389_33500

Hạn chế làframe_startkhông thểKhông giới hạn sau, frame_endkhông thểkhông bị ràng buộc trướcframe_endsự lựa chọn không thể xuất hiện sớm hơn trong Danh sách trên hơnframe_startLựa chọn - ví dụPhạm vi giữa hàng hiện tại VÀgiá trịtrướckhông cho phép.

Các chức năng cửa sổ tích hợp được mô tả trongBảng 9-49. Các chức năng cửa sổ khác có thể được thêm bởi người dùng. Ngoài ra, bất kỳ tích hợp hoặc chức năng tổng hợp do người dùng xác định có thể được sử dụng làm cửa sổ chức năng.

Cú pháp sử dụng*được sử dụng cho Gọi các hàm tổng hợp không tham số-không có chức năng cửa sổ, cho ví dụCount (*) Over (phân vùng theo thứ tự x theo thứ tự y). Dấu hoa thị (*) theo thông thường Không được sử dụng cho các chức năng cửa sổ không tổng hợp. Cửa sổ tổng hợp các chức năng, không giống như các hàm tổng hợp thông thường, không cho phépkhác biệthoặcThứ tự QUAĐược sử dụng trong danh sách đối số chức năng.

Các cuộc gọi chức năng cửa sổ chỉ được phép trongChọnDanh sách vàĐặt hàng QUAmệnh đề của truy vấn.

Thông tin thêm về các chức năng cửa sổ có thể được tìm thấy trongPhần 3.5, Phần 9,21, Phần 7.2.4.

4.2.9. Nhập các diễn viên

kèo bóng đá cúp c2 loại diễn viên chỉ định chuyển đổi từ kèo bóng đá cúp c2 loại dữ liệu sang loại khác.POSTGRESQLChấp nhận hai Cú pháp tương đương cho loại đúc:

cast (Biểu kèo bóng đá cúp c2ASloại)Biểu kèo bóng đá cúp c2::loại

TheCastCú pháp phù hợp với SQL; các Cú pháp với::là lịch sửPOSTGRESQLsử dụng.

Khi một diễn viên được áp dụng cho biểu kèo bóng đá cúp c2 giá trị của một loại đã biết, nó Đại diện cho một chuyển đổi loại thời gian chạy. Các diễn viên sẽ chỉ thành công Nếu một hoạt động chuyển đổi loại phù hợp đã được xác định. Để ý rằng điều này khác biệt một cách tinh tế so với việc sử dụng phôi với các hằng số, Như thể hiện trongPhần 4.1.2.736226_36471

Một loại diễn viên rõ ràng thường có thể được bỏ qua nếu không có sự mơ hồ về loại mà biểu kèo bóng đá cúp c2 giá trị phải tạo ra (đối với Ví dụ, khi nó được gán cho một cột bảng); hệ thống sẽ Tự động áp dụng một loại đúc trong các trường hợp như vậy. Tuy nhiên, tự động Đúc chỉ được thực hiện cho các diễn viên được đánh dấu"OK để áp dụng ngầm"Trong danh mục hệ thống. Các diễn viên khác phải được gọi bằng cú pháp đúc rõ ràng. Cái này Hạn chế nhằm ngăn chặn các chuyển đổi đáng ngạc nhiên từ được áp dụng âm thầm.

Cũng có thể chỉ định kèo bóng đá cúp c2 loại đúc bằng cách sử dụng kèo bóng đá cúp c2 hàm giống như hàm Cú pháp:

typename(Biểu kèo bóng đá cúp c2)

Tuy nhiên, điều này chỉ hoạt động cho các loại có tên cũng hợp lệ như Tên chức năng. Ví dụ,Double Độ chính xácKhông thể được sử dụng theo cách này, nhưng tương đươngfloat8Có thể. Ngoài ra, tênKhoảng, thời gianTimestampChỉ có thể được sử dụng theo kiểu này Nếu chúng được trích dẫn kép, vì xung đột cú pháp. Do đó, việc sử dụng cú pháp đúc giống như hàm dẫn đến sự không nhất quán và có lẽ nên tránh.

Lưu ý:37818_38130"Cú pháp giống như hàm"Không có gì hơn hơn kèo bóng đá cúp c2 lời cầu khẩn trực tiếp của chức năng chuyển đổi cơ bản. Rõ ràng, đây không phải là thứ mà kèo bóng đá cúp c2 ứng dụng di động nên dựa vào. Để biết thêm chi tiết, xemTạo Cast.

4.2.10. Biểu kèo bóng đá cúp c2 đối chiếu

Theđối chiếumệnh đề ghi đè lên đối chiếu của một biểu kèo bóng đá cúp c2. Nó được gắn vào biểu kèo bóng đá cúp c2 nó Áp dụng cho:

exprđối chiếuđối chiếu

WHEREđối chiếucó thể Định danh đủ điều kiện lược đồ. Theđối chiếu38970_39049

Nếu không có đối chiếu được chỉ định rõ ràng, hệ thống cơ sở dữ liệu hoặc có được sự đối chiếu từ các cột liên quan đến Biểu kèo bóng đá cúp c2 hoặc nó mặc định là đối chiếu mặc định của cơ sở dữ liệu Nếu không có cột nào liên quan đến biểu kèo bóng đá cúp c2.

Hai cách sử dụng phổ biến củađối chiếumệnh đề đang ghi đè thứ tự sắp xếp theoĐặt hàng bởimệnh đề, ví dụ:

Chọn A, B, C từ TBL trong đó ... thứ tự bằng kèo bóng đá cúp c2 đối chiếu "C";

và ghi đè lên sự đối chiếu của kèo bóng đá cúp c2 chức năng hoặc người vận hành gọi Có kết quả nhạy cảm với địa phương, ví dụ:

Chọn * từ tbl trong đó a 'foo' đối chiếu "C";

Lưu ý rằng trong trường hợp sauđối chiếumệnh đề được gắn vào đối số đầu vào của Các nhà điều hành chúng tôi muốn ảnh hưởng. Nó không quan trọng đối số nào của toán tử hoặc chức năng gọiđối chiếumệnh đề được đính kèm, vì sự đối chiếu được áp dụng bởi người vận hành hoặc chức năng có nguồn gốc bằng cách xem xét tất cả các đối số và kèo bóng đá cúp c2 điều rõ ràngđối chiếumệnh đề sẽ ghi đè Các đối chiếu của tất cả các lập luận khác. (Đính kèm không phù hợpđối chiếumệnh đề đến nhiều hơn kèo bóng đá cúp c2 đối số, Tuy nhiên, là kèo bóng đá cúp c2 lỗi. Để biết thêm chi tiết, xemPhần 22.2.) Vì vậy, điều này cho cùng kèo bóng đá cúp c2 kết quả như ví dụ trước:

Chọn * Từ TBL trong đó kèo bóng đá cúp c2 đối chiếu "C" 'foo';

Nhưng đây là kèo bóng đá cúp c2 lỗi:

40622_40676

Bởi vì nó cố gắng áp dụng kèo bóng đá cúp c2 đối chiếu vào kết quả củatoán tử, thuộc về Kiểu dữ liệu không thể thu được40844_40853.

4.2.11. Qualeries vô hướng

41019_41054ChọnTruy vấn trong ngoặc đơn trả về chính xác kèo bóng đá cúp c2 hàng với kèo bóng đá cúp c2 cột. (Nhìn thấyChương 7Để biết thông tin về Viết truy vấn.) TheChọnTruy vấn là được thực thi và giá trị trả về duy nhất được sử dụng trong xung quanh Biểu kèo bóng đá cúp c2 giá trị. Đó là một lỗi khi sử dụng một truy vấn trả về nhiều hơn hơn một hàng hoặc nhiều hơn một cột dưới dạng phụ vô hướng. (Nhưng nếu, Trong một lần thực hiện cụ thể, trình điều khiển con trả về không có hàng, ở đó là không có lỗi; Kết quả vô hướng được coi là null.) có thể tham khảo các biến từ truy vấn xung quanh, sẽ hành động là hằng số trong bất kỳ một đánh giá nào của truy vấn con. Xem thêmPhần 9.22cho khác Biểu kèo bóng đá cúp c2 liên quan đến các nhóm phụ.

Ví dụ: sau đây tìm thấy dân số thành phố lớn nhất trong Mỗi trạng thái:

Chọn tên, (chọn tối đa (pop) từ các thành phố nơi các thành phố.state = states.name)
    Từ trạng thái;

4.2.12. Chất xây dựng mảng

Trình xây dựng mảng là một biểu kèo bóng đá cúp c2 xây dựng giá trị mảng Sử dụng các giá trị cho các yếu tố thành viên của nó. Một hàm tạo mảng đơn giản bao gồm từ khóamảng, kèo bóng đá cúp c2 bên trái khung vuông[42446_42559]. Ví dụ:

chọn Mảng [1,2,3+4];
  Mảng
---------
 1,2,7

Theo mặc định, loại phần tử mảng là loại phổ biến của Biểu kèo bóng đá cúp c2 thành viên, được xác định bằng cách sử dụng các quy tắc tương tự như đối vớiUnionhoặccaseCấu trúc (xemPhần 10.542948_43052

chọn Mảng [1,2,22.7] :: Integer [];
  Mảng
----------
 1,2,23

Điều này có tác dụng tương tự như đúc từng biểu kèo bóng đá cúp c2 cho mảng loại phần tử riêng lẻ. Để biết thêm về đúc, xemPhần 4.2.9.

Giá trị mảng đa chiều có thể được xây dựng bằng cách làm tổ người xây dựng. Trong các hàm tạo bên trong, từ khóamảngcó thể được bỏ qua. Ví dụ, những sản phẩm này sản xuất Kết quả tương tự:

chọn mảng [mảng [1,2], mảng [3,4]];
     Mảng
---------------
 1,2, 3,4

Vì các mảng đa chiều phải là hình chữ nhật, bên trong người xây dựng ở cùng cấp độ phải tạo ra các mảng phụ giống hệt nhau Kích thước. Bất kỳ diễn viên nào được áp dụng cho bên ngoàimảngConstructor tuyên truyền tự động đến tất cả các hàm tạo bên trong.

Các yếu tố cấu trúc mảng đa chiều có thể là bất cứ điều gì năng suất kèo bóng đá cúp c2 mảng thuộc loại thích hợp, không chỉ là kèo bóng đá cúp c2 phụmảngXây dựng. Ví dụ:

Tạo bảng ARR (f1 int [], f2 int []);

Chèn vào các giá trị mảng (mảng [[1,2], [3,4]], mảng [[5,6], [7,8]]);

Chọn mảng [f1, f2, '9,10, 11,12' :: int []] từ mảng;
                     Mảng
----------------------------------------------------
 1,2, 3,4, 5,6, 7,8, 9,10, 11,12

Bạn có thể xây dựng kèo bóng đá cúp c2 mảng trống, nhưng vì không thể có kèo bóng đá cúp c2 mảng không có loại, bạn phải sử dụng rõ ràng Mảng đến loại mong muốn. Ví dụ:

Chọn mảng [] :: Integer [];
 Mảng
-------

cũng có thể xây dựng kèo bóng đá cúp c2 mảng từ kết quả của a Subquery. Ở dạng này, hàm tạo mảng được viết bằng Từ khóamảngTiếp theo là dấu ngoặc đơn (không có dấu ngoặc) con. Ví dụ:

chọn mảng (chọn oid từ pg_proc trong đó đại từ như 'bytea%');
                                 Mảng
---------------------------------------------------------------------------
 2011,1954,1948,1952,1951,1244,1950,2005,1949,1953,2006,31,2412,2413

Trình điều khiển con phải trả về kèo bóng đá cúp c2 cột duy nhất. Kết quả mảng kèo bóng đá cúp c2 chiều sẽ có kèo bóng đá cúp c2 phần tử cho mỗi hàng trong Kết quả truy vấn con, với loại phần tử phù hợp với Cột đầu ra của SubQuery.

Các chỉ số của kèo bóng đá cúp c2 giá trị mảng được xây dựng vớimảngLuôn bắt đầu bằng kèo bóng đá cúp c2. Để biết thêm thông tin về mảng, xemPhần 8.15.

4.2.13. Chất xây dựng hàng

Trình xây dựng hàng là một biểu kèo bóng đá cúp c2 xây dựng giá trị hàng (cũng được gọi là giá trị tổng hợp) bằng cách sử dụng các giá trị cho các trường thành viên của nó. Một hàng Constructor bao gồm từ khóahàng,, Một dấu ngoặc đơn bên trái, không hoặc nhiều biểu kèo bóng đá cúp c2 (cách nhau bằng dấu phẩy) Đối với các giá trị trường hàng, và cuối cùng là một dấu ngoặc đơn đúng. Vì ví dụ:

Chọn hàng (1,2,5, 'Đây là kèo bóng đá cúp c2 bài kiểm tra');

Từ khóahànglà tùy chọn khi ở đó là nhiều hơn một biểu kèo bóng đá cúp c2 trong danh sách.

Trình xây dựng hàng có thể bao gồm cú phápROWVALUE.*, mà sẽ được mở rộng thành kèo bóng đá cúp c2 danh sách các phần tử của giá trị hàng, chỉ như xảy ra khi.*Cú pháp được sử dụng tại Cấp cao nhất của AChọnDanh sách (xemPhần 8.16.5). Vì Ví dụ, nếu bảngTCó cộtF1f2, đây là như nhau:

chọn hàng (t.*, 42) từ t;
Chọn hàng (T.F1, T.F2, 42) từ t;

Lưu ý:trướcPOSTGRESQL8.2,.*Cú pháp không được mở rộng theo hàng người xây dựng, để viếthàng (t.*, 42)đã tạo kèo bóng đá cúp c2 hàng hai trường có trường đầu tiên là giá trị hàng khác. Hành vi mới thường hữu ích hơn. Nếu bạn cần cái cũ Hành vi của các giá trị hàng lồng nhau, hãy viết giá trị hàng bên trong mà không cần.*, ví dụhàng (t, 42).

Theo mặc định, giá trị được tạo bởi AhàngBiểu kèo bóng đá cúp c2 thuộc loại bản ghi ẩn danh. Nếu cần thiết, nó có thể là đúc theo loại tổng hợp được đặt tên - loại hàng của bảng hoặc một loại tổng hợp được tạo bằngTạo loại BẰNG. kèo bóng đá cúp c2 diễn viên rõ ràng có thể cần thiết để tránh sự mơ hồ. Vì ví dụ:

Tạo bảng myTable (f1 int, f2 float, văn bản F3);

Tạo hàm getf1 (mytable) trả về int là 'chọn $ 1.f1' SQL ngôn ngữ;

- Không cần diễn viên vì chỉ có kèo bóng đá cúp c2 getf1 () tồn tại
Chọn getf1 (hàng (1,2,5, 'Đây là kèo bóng đá cúp c2 thử nghiệm'));
 getf1
-------
     1
(1 hàng)

Tạo loại myrowtype dưới dạng (F1 int, f2 văn bản, số f3);

Tạo hàm getf1 (myrowtype) trả về int là 'chọn $ 1.f1' ngôn ngữ SQL;

- Bây giờ chúng ta cần kèo bóng đá cúp c2 diễn viên để chỉ ra chức năng nào để gọi:
Chọn getf1 (hàng (1,2,5, 'Đây là kèo bóng đá cúp c2 thử nghiệm'));
Lỗi: Hàm getf1 (bản ghi) không phải là duy nhất

Chọn getf1 (hàng (1,2,5, 'Đây là kèo bóng đá cúp c2 bài kiểm tra') :: mytable);
 getf1
-------
     1
(1 hàng)

Chọn getf1 (cast (hàng (11, 'Đây là kèo bóng đá cúp c2 thử nghiệm', 2.5) là myrowtype));
 getf1
-------
    11
(1 hàng)

Trình xây dựng hàng có thể được sử dụng để xây dựng các giá trị tổng hợp được lưu trữ trong kèo bóng đá cúp c2 cột bảng loại tổng hợp hoặc được chuyển cho kèo bóng đá cúp c2 chức năng chấp nhận kèo bóng đá cúp c2 tham số tổng hợp. Ngoài ra, nó có thể Để so sánh hai giá trị hàng hoặc kiểm tra kèo bóng đá cúp c2 hàng vớiIS VÔ GIÁ TRỊhoặc48962_48975Ví dụ:

Chọn hàng (1,2,5, 'Đây là kèo bóng đá cúp c2 bài kiểm tra') = hàng (1, 3, 'không giống nhau');

Chọn hàng (bảng.*) Là null từ bảng;  -Phát hiện hàng không null

Để biết thêm chi tiết, xemPhần 9,23. Các hàm tạo hàng cũng có thể được sử dụng liên quan đến Các nhóm phụ, như đã thảo luận trongPhần 9.22.

4.2.14. Quy tắc đánh giá biểu kèo bóng đá cúp c2

Thứ tự đánh giá các kèo bóng đá cúp c2 hiện phụ không được xác định. TRONG đặc biệt, đầu vào của toán tử hoặc chức năng không nhất thiết được đánh giá từ trái sang phải hoặc trong bất kỳ cố định nào khác đặt hàng.

Hơn nữa, nếu kết quả của một biểu kèo bóng đá cúp c2 có thể được xác định bởi Chỉ đánh giá một số phần của nó, sau đó các biểu hiện phụ khác có thể không được đánh giá ở tất cả. Chẳng hạn, nếu một người đã viết:

Chọn True hoặc SomethingFunc ();

sau đóSOMEFUNC ()sẽ (có lẽ) không được được gọi là tất cả. Điều tương tự cũng sẽ xảy ra nếu kèo bóng đá cúp c2 người viết:

50123_50151

Lưu ý rằng điều này không giống như từ trái sang phải"Ngừng ngắn mạch"của các nhà khai thác boolean đó là tìm thấy trong kèo bóng đá cúp c2 số ngôn ngữ lập trình.

50331_50507WHEREmệnh đề, Vì những điều khoản đó được xử lý rộng rãi như một phần của phát triển một kế hoạch thực hiện. Biểu kèo bóng đá cúp c2 Boolean (/hoặc/khôngkết hợp) trong các mệnh đề đó có thể Tổ chức lại theo bất kỳ cách nào cho phép bởi các luật của Boolean Đại số.

Khi nó cần thiết để buộc đặt hàng đánh giá, AcaseXây dựng (xemPhần 9.17) có thể được sử dụng. Vì Ví dụ, đây là kèo bóng đá cúp c2 cách không đáng để cố gắng tránh phân chia bằng không trong kèo bóng đá cúp c2WHEREmệnh đề:

Chọn ... trong đó x 0 và y/x 1.5;

Nhưng điều này là an toàn:

Chọn ... Trường hợp trường hợp khi x 0 thì y/x 1.5 khác kết thúc sai;

AcaseXây dựng được sử dụng theo kiểu này sẽ đánh bại các nỗ lực tối ưu hóa, vì vậy nó chỉ nên được thực hiện khi cần thiết. (Trong ví dụ cụ thể này, sẽ tốt hơn nếu Bên cạnh vấn đề bằng cách viếty 1.5*xthay vào đó.)

CASE51701_51887Phần 35.6,, Các chức năng và toán tử được đánh dấuImmutablecó thể được đánh giá khi truy vấn được lên kế hoạch thay vì khi nó là thực hiện. Do đó, ví dụ

Chọn trường hợp khi x 0 sau đó x kết thúc 1/0 từ tab;

có khả năng dẫn đến sự cố phân chia theo không người lập kế hoạch cố gắng đơn giản hóa kèo bóng đá cúp c2 hiện phụ liên tục, ngay cả khi Mỗi hàng trong bảng đều cóx 0Vì vậy rằngkhácARM sẽ không bao giờ được nhập Vào thời gian chạy.

Trong khi ví dụ cụ thể đó có vẻ ngớ ngẩn, các trường hợp liên quan điều đó rõ ràng không liên quan đến các hằng số có thể xảy ra trong các truy vấn được thực thi trong các chức năng, vì các giá trị của các đối số chức năng và các biến cục bộ có thể được chèn vào các truy vấn dưới dạng hằng số cho mục đích lập kế hoạch. Ở trongPL/PGSQLChức năng, ví dụ, sử dụngnếu-sau đó-khácTuyên bố để bảo vệ tính toán rủi ro là an toàn hơn nhiều so với chỉ làm tổ trongcaseBiểu kèo bóng đá cúp c2.

kèo bóng đá cúp c2 giới hạn khác của cùng kèo bóng đá cúp c2 loại là AcaseKhông thể ngăn chặn việc đánh giá một tổng hợp Biểu kèo bóng đá cúp c2 có trong đó, bởi vì các biểu kèo bóng đá cúp c2 tổng hợp là được tính toán trước các biểu kèo bóng đá cúp c2 khác trongChọnDanh sách hoặcmệnh đề được xem xét. Ví dụ: truy vấn sau có thể gây ra Lỗi phân chia từng không mặc dù dường như đã được bảo vệ chống lại Nó:

Chọn trường hợp khi tối thiểu (nhân viên) 0
            Sau đó AVG (chi phí / nhân viên)
       KẾT THÚC
    Từ các phòng ban;

Themin ()avg ()Tổng hợp được tính toán đồng thời Tất cả các hàng đầu vào, vì vậy nếu bất kỳ hàng nào cónhân viênBằng không, Lỗi sẽ xảy ra trước khi có bất kỳ cơ hội nào để kiểm tra kết quả củamin (). Thay vào đó, hãy sử dụngWHEREmệnh đề để ngăn các hàng đầu vào có vấn đề từ đạt được kèo bóng đá cúp c2 hàm tổng hợp ở nơi đầu tiên.