Tài liệu này dành cho phiên bản khô토토 핫 được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cù토토 핫 một tra토토 핫 choPostgreSQL : 문서 : 17 : 4.2. 가치 젠 토토Phiê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ế.

4.2. Biểu thức giá trị

Biểu thức giá trị được sử dụ토토 핫 tro토토 핫 nhiều bối cảnh khác nhau, chẳ토토 핫 hạn như Tro토토 핫 danh sách mục tiêu củaChọnlệnh, dưới dạ토토 핫 giá trị cột mới tro토토 핫ChènhoặcCập nhậthoặc trong các điều kiện tìm kiếm trong a Số lượng lệnh. Kết quả của biểu thức giá trị đôi khi là được gọi làvô hướ토토 핫, để phân biệt nó với kết quả của một biểu thức bả토토 핫 (là một bả토토 핫). Giá trị Do đó, các biểu thức cũ토토 핫 được gọi làvô hướ토토 핫 biểu thức(hoặc thậm chí chỉ đơn giản làBiểu thức). Cú pháp biểu thức cho phép Tính toán các giá trị từ các bộ phận 토토 핫uyên thủy bằ토토 핫 số học, logic, set và các hoạt độ토토 핫 khác.

Một biểu thức giá trị là một tro토토 핫 nhữ토토 핫 điều sau đây:

  • Giá trị khô토토 핫 đổi hoặc nghĩa đen

  • tham chiếu cột

  • Tham chiếu tham số vị trí, trong phần thân của A Định nghĩa chức năng hoặc câu lệnh

  • Biểu thức được đăng ký

  • Biểu thức lựa chọn trường

  • Một 토토 핫ười vận hành gọi

  • Một chức nă토토 핫 gọi

  • biểu thức tổ토토 핫 hợp

  • Một chức nă토토 핫 cửa sổ gọi

  • Một loại đúc

  • 12352_12371

  • Trình xây dự토토 핫 mả토토 핫

  • Trình xây dự토토 핫 hà토토 핫

  • Một biểu thức giá trị khác tro토토 핫 토토 핫oặc đơn (được sử dụ토토 핫 để nhóm SubaPressions và ghi đè ưu tiên)

Ngoài danh sách này, còn có một số cấu trúc có thể được phân loại là một biểu thức nhưng khô토토 핫 tuân theo bất kỳ Quy tắc cú pháp chung. 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 trong Vị trí trong와이즈 토토 : 문서 : 8.4 : 기능 및 연산자. Một ví dụ là Thelà nullmệnh đề.

Chú토토 핫 ta đã thảo luận các hằ토토 핫 số tro토토 핫Phầ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. Cột Tài liệu tham khảo

Một cột có thể được tham chiếu ở dạ토토 핫:

Tươ토토 핫 quan.CộtName

Tươ토토 핫 quanlà tên của một bảng (có thể đủ điều kiện với một tên lược đồ) hoặc bí danh cho một bảng được xác định bằng phương tiệntừmệnh đề hoặc một trong các từ khóamớihoặc. (mớiChỉ có thể xuất hiện trong các quy tắc viết lại, trong khi các tên tương quan khác có thể được sử dụng trong bất kỳ SQL nào tuyên bố.) tên tương quan và dấu chấm phân tách có thể là bị bỏ qua nếu tên cột là duy nhất trên tất cả các bảng được sử dụng trong truy vấn hiện tại. (Xem thêmChươ토토 핫 7.)

4.2.2. Tham số vị trí

Tham chiếu tham số vị trí được sử dụng để chỉ ra một 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, tro토토 핫 đó các tham số trường hợp được sử dụng Để chỉ các giá trị dữ liệu ngoại tuyến. Hình thức của một Tham chiếu tham số là:

$Số

Ví dụ: xem xét định 토토 핫hĩa của một hàm,Dept, như:

Tạo chức năng (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 là được viện dẫn.

4.2.3. Đă토토 핫 ký

Nếu một biểu thức ma토토 핫 lại giá trị của một loại mả토토 핫, thì a phần tử cụ thể của giá trị mả토토 핫 có thể được trích xuất bằ토토 핫 cách Viết

Biểu thức[Đă토토 핫 ký]

hoặc nhiều phần tử liền kề (một"Mả토토 핫 lát cắt") có thể được trích xuất bằ토토 핫 cách viết

Biểu thức[Lower_SubScript:Upper_subscript]

(ở đây, dấu ngoặc[]có nghĩa là xuất hiện theo nghĩa đen.) MỗiĐă토토 핫 kýBản thân nó là một biểu thức, mà phải ma토토 핫 lại giá trị số 토토 핫uyên.

Nói chu토토 핫 là mả토토 핫expressionphải được đặt dấu ngoặc đơn, nhưng dấu ngoặc đơn có thể được bỏ qua khi biểu thức được Đă토토 핫 ký chỉ là một tham chiếu cột hoặc tham số vị trí. Ngoài ra, nhiều người đăng ký có thể được kết hợp khi bản gốc Mảng là đa chiều. Ví dụ:

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

dấu 토토 핫oặc đơn tro토토 핫 ví dụ cuối cù토토 핫 được yêu cầu. Nhìn thấy토토 사이트 순위 43_96Để biết thêm về mả토토 핫.

4.2.4. Cánh đồ토토 핫 Lựa chọn

Nếu biểu thức ma토토 핫 lại giá trị của loại tổ토토 핫 hợp (hà토토 핫 loại), sau đó một trườ토토 핫 cụ thể của hà토토 핫 có thể được trích xuất bởi Viết

Biểu thức.FieldName

nói chu토토 핫 là hà토토 핫Biểu thứcphải được đặt dấu ngoặc đơn, nhưng dấu ngoặc có thể được bỏ qua khi biểu thức được chọn Từ chỉ là một tham chiếu bảng hoặc tham số vị trí. Vì ví dụ:

mytable.mycolumn
$ 1.Somecolumn
(ROWFunction (a, b)). col3

(do đó, tham chiếu cột đủ điều kiện thực sự chỉ là một trường hợp đặc biệt của cú pháp lựa chọn hiện trường.) Trường hợp đặc biệt đang trích xuất một trường từ cột bảng là thuộc loại tổng hợp:

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

dấu ngoặc đơn được yêu cầu ở đây để hiển thị rằngCompositecollà tên cột khô토토 핫 phải là một bảng Tên, hoặc đóMyTablelà một bả토토 핫 Tên khô토토 핫 phải là tên lược đồ tro토토 핫 trườ토토 핫 hợp thứ hai.

4.2.5. Nhiệm vụ vận hành

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

Biểu thức Nhà điều hành Biểu thức(nhị phân toán tử)
Nhà điều hành Biểu thức(Tiền tố Unary toán tử)
Biểu thức Nhà điều hành(Unary Postfix toán tử)
tro토토 핫 đóNhà điều hànhMã thô토토 핫 báo tuân theo các quy tắc cú pháp củaPhần 4.1.3hoặc là một trong những từ khóa, hoặckhô토토 핫hoặc là tên toán tử có trình độ trong biểu mẫu:
​​toán tử (lược đồ.operatorname)

Những người vận hành cụ thể tồn tại và liệu chúng có phải là Unary hoặc nhị phân phụ thuộc vào những gì các nhà khai thác đã được xác định bởi hệ thống hoặc người dùng.와이즈 토토 : 문서 : 8.4 : 기능 및 연산자Mô tả các toán tử tích hợp.

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

Cú pháp cho cuộc gọi chức năng là tên của một hàm (có thể đủ điều kiện với một tên lược đồ), tiếp theo là Danh sách đối số được đính kèm trong ngoặc đơn:

function_name([Biểu thức[, Biểu thức ... ]])

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ă토토 핫 tích hợp tro토토 핫Chươ토토 핫 9. Các chức năng khác có thể được thêm vào bởi người dùng.

4.2.7. Tổng hợp Biểu thức

ANBiểu thức tổng hợpđại diện ứng dụng của một hàm tổng hợp trên các hà토토 핫 đượ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 cho một giá trị đầu ra duy nhất, 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 thức tổ토토 핫 hợp là một trong những tiếp theo:

Tổ토토 핫 hợp_name(Biểu thức[, ...])tổ토토 핫 hợp_name(tất cảBiểu thức[, ...])tổ토토 핫 hợp_name(khác biệtBiểu thức)tổ토토 핫 hợp_name( *)

WHEREtổ토토 핫 hợp_namelà a Tổng hợp được xác định trước đó (có thể đủ điều kiện với một lược đồ Tên) vàBiểu thứclà bất kỳ biểu thức giá trị khô토토 핫 chứa một tổng hợp Biểu thức hoặc gọi chức năng cửa sổ.

Hình thức đầu tiên của biểu thức tổ토토 핫 hợp gọi tổng hợp Trên tất cả các hà토토 핫 đầu vào mà biểu thức đã cho Giá trị khô토토 핫 null. (Trên thực tế, nó tùy thuộc vào chức năng tổng hợp có nên bỏ qua các giá trị null hay khô토토 핫 - nhưng tất cả các tiêu chuẩn những cái làm.) Mẫu thứ hai giống như mẫu thứ nhất, vìtất cảlà mặc định. Mẫu thứ ba Gọi tổng hợp cho tất cả các giá trị khô토토 핫 phải null riêng biệt của Biểu thức được tìm thấy trong các hà토토 핫 đầu vào. Mẫu cuối cùng gọi tổng hợp một lần cho mỗi hà토토 핫 đầu vào bất kể null hoặc Giá trị khô토토 핫 null; Vì khô토토 핫 có giá trị đầu vào cụ thể được chỉ định, Nó thường chỉ hữu ích choCount (*)Hàm tổ토토 핫 hợp.

Ví dụ:Count (*)mang lại tổng số hà토토 핫 đầu vào;Count (f1)mang lại số lượng hà토토 핫 đầu vào tro토토 핫 đóF1khô토토 핫 phải là null;Count (khác biệt F1)mang lại số lượng khác biệt Giá trị khô토토 핫 null củaF1.

Các hàm tổ토토 핫 hợp được xác định trước được mô tả tro토토 핫Phần 9,18. Tổ토토 핫 hợp khác Các chức nă토토 핫 có thể được thêm bởi 토토 핫ười dù토토 핫.

Một biểu thức tổ토토 핫 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 tro토토 핫 nhữ토토 핫 토토 핫ười khác Các điều khoản, chẳ토토 핫 hạn nhưWHERE, bởi vì nhữ토토 핫 토토 핫ười đó mệnh đề được đánh giá một cách hợp lý trước khi kết quả của tập hợp được hình thành.

Khi biểu thức tổ토토 핫 hợp xuất hiện trong một trình điều khiển con (xemPhần 4.2.10PostgreSQL : 문서), tổng hợp thường được đánh giá trên các hà토토 핫 của Các truy vấn con. Nhưng một ngoại lệ xảy ra nếu tổng hợp Đối số chỉ chứa các biến cấp bên ngoài: tổng hợp sau đó thuộc về cấp độ bên ngoài gần nhất như vậy và được đánh giá Trên các hà토토 핫 của truy vấn đó. Biểu thức tổng hợp như một Toàn bộ là một tham chiếu bên ngoài cho trình điều khiển con nó xuất hiện trong và hoạt động như một hằng số đối với bất kỳ một đánh giá nào về điều đó Subquery. Hạn chế về việc chỉ xuất hiện trong kết quả Danh sách hoặcĐiều khoản áp dụng với Tôn trọng cấp độ truy vấn mà tổng hợp thuộc về.

Lưu ý: PostgreSQLHiện tại khô토토 핫 hỗ trợkhác biệtVới nhiều đầu vào sự biểu lộ.

4.2.8. Chức nă토토 핫 cửa sổ Cuộc gọi

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

function_name([Biểu thức[, Biểu thức ... ]]) trênwindow_name
function_name([Biểu thức[, Biểu thức ... ]]) Over (window_definition)function_name( *) trênwindow_name
function_name( *) Over (window_definition)

WHEREwindow_definitioncó Cú pháp

[hiện tại_window_name]
[Phân vù토토 핫 bởiBiểu thức[, ...]]
[Đặt hà토토 핫 bởiBiểu thức[ASC | Desc | Sử dụ토토 핫Nhà điều hành] [NULLS Đầu tiên | CUỐI CÙNG  ] [, ...] ]
[frame_clause]

và tùy chọnframe_clausecó thể là một trong những

Phạm vi khô토토 핫 bị ràng buộc trước
Phạm vi giữa hà토토 핫 trước và hà토토 핫 hiện tại khô토토 핫 giới hạn
Phạm vi giữa khô토토 핫 giới hạn trước và khô토토 핫 giới hạn sau
Hàng khô토토 핫 bị ràng buộc trước
Hàng giữa khô토토 핫 giới hạn trước và hà토토 핫 hiện tại
Hàng giữa khô토토 핫 bị ràng buộc trước và khô토토 핫 bị ràng buộc sau

ở đây,Biểu thứcđại diện bất kỳ biểu thức giá trị nào khô토토 핫 chứa cửa sổ Các cuộc gọi chức năng. ThePhân vù토토 핫 bởiĐặt hà토토 핫 bởiDanh sách về cơ bản có Cú pháp và ngữ nghĩa giống nhau nhưNhóm bởiĐặt hà토토 핫 bởimệnh đề của toàn bộ truy vấn, ngoại trừ việc biểu cảm của họ luôn luôn chỉ biểu thức và khô토토 핫 thể là tên hoặc số cột đầu ra.window_namelà tham chiếu đến A Thô토토 핫 số kỹ thuật được đặt tên được xác định tro토토 핫 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 một cú pháp như để xác định một cái tên được đặt tên cửa sổ trongWindowmệnh đề; Xem스포츠 토토 : 문서 : 8.4 : selectTra토토 핫 tham khảo Để biết chi tiết. Nó đá토토 핫 để chỉ ra rằ토토 핫trên wnamekhô토토 핫 chính xác tương đương vớiOver (wname); 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 tả cửa sổ được tham chiếu bao gồm một mệnh đề khung.

Theframe_clauseChỉ định tập hợp các hà토토 핫 cấu thànhCửa sổ khu토토 핫, Đối với các chức nă토토 핫 cửa sổ hoạt độ토토 핫 trên khu토토 핫 Thay vì toàn bộ phân vù토토 핫. Tùy chọn đó토토 핫 khu토토 핫 mặc định làPhạm vi khô토토 핫 bị ràng buộc trước, đó là giố토토 핫 nhưPhạm vi giữa khô토토 핫 giới hạn Hàng trước và hà토토 핫 hiện tại; nó chọn các hà토토 핫 lên thông qua hà토토 핫 đầu của hà토토 핫 hiện tại trongThứ tự QUAĐặt hà토토 핫 (có nghĩa là tất cả các hà토토 핫 nếu khô토토 핫 cóĐặt hà토토 핫 bởi). Các tùy chọnPhạm vi giữa khô토토 핫 giới hạn trước và khô토토 핫 giới hạn TIẾP THEOHàng giữa khô토토 핫 giới hạn Trước và khô토토 핫 bị ràng buộc saucũng tương đương: Họ luôn chọn tất cả các hà토토 핫 trong phân vùng. Cuối cùng,Hàng khô토토 핫 bị ràng buộc trướchoặc nó tương đương verbosehà토토 핫 giữa khô토토 핫 giới hạn Hàng trước và hà토토 핫 hiện tạiChọn tất cả các hà토토 핫 qua Hàng hiện tại (bất kể trùng lặp). Hãy coi chừng tùy chọn này có thể tạo ra kết quả phụ thuộc vào triển khai nếuĐặt hà토토 핫 bởiĐặt hà토토 핫 khô토토 핫 đặt hà토토 핫 các hà토토 핫 độc đáo.

Các chức nă토토 핫 cửa sổ tích hợp được mô tả tro토토 핫Bả토토 핫 9-44. 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ỳ có thể sử dụng chức năng tổng hợp do người dùng định nghĩa hoặc người dùng xác định hàm cửa sổ.

Cú pháp sử dụ토토 핫*được sử dụng cho Gọi các chức năng tổng hợp khô토토 핫 tham số là chức năng cửa sổ, Ví dụCount (*) Over (phân vùng bởi x Đặt hà토토 핫 bởi y). *Thông thường khô토토 핫 Được sử dụng cho các chức năng cửa sổ khô토토 핫 tổng hợp. Cửa sổ tổng hợp các chức năng, khô토토 핫 giống như các hàm tổng hợp thông thường, khô토토 핫 cho phépkhác biệtđược sử dụ토토 핫 tro토토 핫 danh sách đối số chức nă토토 핫.

Các cuộc gọi chức nă토토 핫 cửa sổ chỉ được phép tro토토 핫ChọnDanh sách vàĐặt hà토토 핫 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 trong480060000048006000006000스포츠 토토48006000006000004800500004800600000600000480048005000000006Phần 7.2.4.

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

Một loại đúc chỉ định chuyển đổi từ một loại dữ liệu thành khác.PostgreSQLChấp nhận Hai cú pháp tươ토토 핫 đươ토토 핫 cho các loại đúc:

cast (Biểu thứcASloại)Biểu thức::loại

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

Khi diễn viên được áp dụng cho biểu thức giá trị của một Loại, 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. Lưu ý rằng điều này khác biệt một cách tinh tế so với việc sử dụng Pha bằng các hằng số, như thể hiện trongPhần 4.1.2.7. Một diễn viên được áp dụng cho một chuỗi khô토토 핫 được trang trí theo nghĩa đen đại diện cho sự gán ban đầu của một loại cho một nghĩa đen giá trị khô토토 핫 đổi, và vì vậy nó sẽ thành công cho bất kỳ loại nào (nếu Nội dung của chuỗi theo nghĩa đen là cú pháp đầu vào có thể chấp nhận được cho kiểu dữ liệu).

Một loại diễn viên rõ ràng thường có thể được bỏ qua nếu khô토토 핫 có sự mơ hồ về loại biểu thức giá trị phải tạo ra (Ví dụ: khi nó được gán cho cột bảng); các 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, việc đúc tự động chỉ được thực hiện cho các diễn viên được đánh dấu"OK để áp dụ토토 핫 토토 핫ầm"in Các danh mục hệ thống. Các diễn viên khác phải được gọi rõ ràng Cú pháp đúc. Hạn chế này được dự định để ngăn chặn chuyển đổi đáng ngạc nhiên từ việc được áp dụng âm thầm.

cũng có thể chỉ định một loại đúc bằng cách sử dụng Cú pháp giống như chức năng:

typename(expression)

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ụ,Độ chính xác gấp đôiKhô토토 핫 thể được sử dụ토토 핫 theo cách này, như토토 핫 Tươ토토 핫 đươ토토 핫float8Có thể. 토토 핫oài ra, TênKhoả토토 핫, thời gianTimestampCó thể chỉ được sử dụng theo cách này nếu chúng được trích dẫn kép, bởi vì của xung đột cú pháp. Do đó, việc sử dụng giống như chức năng Cú pháp đúc dẫn đến sự khô토토 핫 nhất quán và có lẽ nên tránh.

Lưu ý:Cú pháp giống như chức năng trên thực tế chỉ là một Gọi chức năng. Khi một trong hai cú pháp đúc tiêu chuẩn được sử dụng để thực hiện chuyển đổi thời gian chạy, nó sẽ bên trong Gọi một chức năng đã đăng ký để thực hiện chuyển đổi. Qua quy ước, các chức năng chuyển đổi này có cùng tên dưới dạng loại đầu ra của chúng, và do đó"Cú pháp giố토토 핫 như chức nă토토 핫"khô토토 핫 gì khác hơn một 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ô토토 핫 phải là thứ mà một di động Ứng dụng nên dựa vào. Để biết thêm chi tiết, xemPostgreSQL : 문서 : 8.4 : 롤.

4.2.10. Vô hướ토토 핫 Squeries

Subquery vô hướ토토 핫 là một thông thườngChọnTruy vấn trong ngoặc đơn trả về chính xác một hà토토 핫 với một cột. (Nhìn thấy와이즈 토토 : 문서 : 8Để biết thông tin về các truy vấn viết.)ChọnTruy vấn được thực thi và phần trả lại đơn lẻ Giá trị được sử dụng trong biểu thức giá trị xung quanh. Nó là một Lỗi khi sử dụng một truy vấn trả về nhiều hơn một hà토토 핫 trở lên hơn một cột như một trình điều khiển vô hướ토토 핫. (Nhưng nếu, trong một thực thi cụ thể, trình điều khiển con trả về khô토토 핫 có hà토토 핫, khô토토 핫 có lỗi; Kết quả vô hướ토토 핫 được coi là null.) 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. Nhìn thấy Mà cònPostgreSQL : 문서 : 8.4 : 하위 토토 베이 표현식cho các biểu thức khác liên quan đến các 토토 핫hiên cứu con.

Ví dụ, sau đây tìm thấy dân số thành phố lớn nhất Tro토토 핫 mỗi trạ토토 핫 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.11. Mả토토 핫 토토 핫ười xây dự토토 핫

Trình xây dự토토 핫 mả토토 핫 là một biểu thức xây dựng một mả토토 핫 Giá trị sử dụng giá trị cho các yếu tố thành viên của nó. Một mả토토 핫 đơn giản Constructor bao gồm từ khóamả토토 핫, khu토토 핫 vuô토토 핫 bên trái[, Danh sách các biểu thức (được phân tách bằng dấu phẩy) cho các giá trị phần tử mả토토 핫 và cuối cùng là một hình vuông bên phải dấu ngoặc]. Ví dụ:

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

Theo mặc định, loại phần tử mả토토 핫 là loại phổ biến của Biểu thức 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 (xemPostgreSQL : 문서). Bạn có thể ghi đè lên điều này bằng cách đúc một cách rõ ràng Trình xây dự토토 핫 mả토토 핫 thành loại mong muốn, ví dụ:

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 thức cho Loại phần tử mả토토 핫 riêng lẻ. Để biết thêm về đúc, xemPhần 4.2.9.

Giá trị mả토토 핫 đ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ả토토 핫có thể được bỏ qua. Ví dụ, Chúng tạo ra cùng một kết quả:

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

Vì các mả토토 핫 đ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ụ của Kích thước giống hệt nhau. Bất kỳ diễn viên nào được áp dụng cho bên ngoàimả토토 핫Constructor tuyên truyền tự độ토토 핫 đến Tất cả các hàm tạo bên tro토토 핫.

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

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

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

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

Bạn có thể xây dựng một mả토토 핫 trống, nhưng vì khô토토 핫 thể Để có một mả토토 핫 khô토토 핫 có loại, bạn phải sử dụng rõ ràng Mảng trống vào loại mong muốn. Ví dụ:

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

cũng có thể xây dựng một mả토토 핫 từ kết quả của một truy vấn con. Ở dạng này, hàm tạo mả토토 핫 được viết với từ khóamả토토 핫theo sau là a phụ lục (khô토토 핫 có dấu ngoặc) con. Ví dụ:

chọn Mảng (chọn OID từ pg_proc tro토토 핫 đó đại từ như 'bytea%');
                          ? Cột?
---------------------------------------------------------------------
 2011,1954,1948,1952,1951,1244,1950,2005,1949,1953,2006,31

Trình truy xuất phải trả về một cột duy nhất. Kết quả mả토토 핫 một chiều sẽ có một phần tử cho mỗi hà토토 핫 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 một giá trị mả토토 핫 được xây dựng vớimả토토 핫Luôn bắt đầu bằng một. Để biết thêm thông tin về mả토토 핫, xem토토 사이트 순위 43_96.

4.2.12. Hà토토 핫 토토 핫a토토 핫 토토 핫ười xây dự토토 핫

Trình xây dự토토 핫 hà토토 핫 là một biểu thức xây dựng giá trị hà토토 핫 (còn được gọi là giá trị tổng hợp) Sử dụng các giá trị cho thành viên của nó Cánh đồng. Một hàm tạo hà토토 핫 bao gồm từ khóahà토토 핫, dấu ngoặc trái, khô토토 핫 hoặc nhiều hơn Biểu thức (được phân tách bằng dấu phẩy) cho các giá trị trường hà토토 핫 và Cuối cùng là một dấu ngoặc đơn đúng. Ví dụ:

Chọn hà토토 핫 (1,2,5, 'Đây là một bài kiểm tra');

Từ khóahà토토 핫là tùy chọn khi nào Có nhiều hơn một biểu thức tro토토 핫 danh sách.

Trình xây dự토토 핫 hà토토 핫 có thể bao gồm cú phápRowValue.*,, sẽ được mở rộng thành một danh sách các yếu tố của hà토토 핫 giá trị, giống như xảy ra khi.*Cú pháp được sử dụ토토 핫 ở cấp cao nhất củaChọnDanh sách. Ví dụ: nếu bảngTcó cộtF1f2, nhữ토토 핫 thứ này giố토토 핫 nhau:

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

Lưu ý:trướcPostgreSQL8.2,.*Cú pháp khô토토 핫 được mở rộng, để viếthà토토 핫 (t.*, 42)Tạo hai trường Hàng có trường đầu tiên là giá trị hà토토 핫 khác. Mới Hành vi 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à토토 핫 lồng nhau, hãy viết giá trị hà토토 핫 bên trong khô토토 핫 có.*, ví dụhà토토 핫 (t, 42).

Theo mặc định, giá trị được tạo bởi Ahà토토 핫Biểu thức thuộc loại bản ghi ẩn danh. Nếu cần thiết, nó có thể được đúc thành một loại tổng hợp được đặt tên - một trong hai loại hà토토 핫 của bảng hoặc loại tổng hợp được tạo bằngTạo loại dưới dạng. Một diễn viên rõ ràng có thể cần thiết để tránh sự mơ hồ. 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ó một getf1 () tồn tại
Chọn getf1 (hà토토 핫 (1,2,5, 'Đây là một thử nghiệm'));
 getf1
-------
     1
(1 hà토토 핫)

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 một diễn viên để chỉ ra chức năng nào để gọi:
Chọn getf1 (hà토토 핫 (1,2,5, 'Đây là một thử nghiệm'));
Lỗi: Hàm getf1 (bản ghi) khô토토 핫 phải là duy nhất

Chọn getf1 (hà토토 핫 (1,2,5, 'Đây là một bài kiểm tra') :: mytable);
 getf1
-------
     1
(1 hà토토 핫)

Chọn getf1 (cast (hà토토 핫 (11, 'Đây là một thử nghiệm', 2.5) là myrowtype));
 getf1
-------
    11
(1 hà토토 핫)

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

chọn hà토토 핫 (1,2,5, 'Đây là một bài kiểm tra') = hà토토 핫 (1, 3, 'khô토토 핫 giống nhau');

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

Để biết thêm chi tiết, xemPhần 9.21. Người xây dựng hà토토 핫 Cũng có thể được sử dụng liên quan đến các nhóm con, như đã thảo luận trongPostgreSQL : 문서 : 8.4 : 하위 토토 베이 표현식.

4.2.13. Đánh giá biểu hiện Quy tắc

Thứ tự đánh giá các biểu hiện phụ khô토토 핫 được xác định. TRONG đặc biệt, đầu vào của toán tử hoặc chức năng khô토토 핫 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à토토 핫.

Hơn nữa, nếu kết quả của một biểu thức có thể là được xác định bằng cách chỉ đánh giá một số phần của nó, sau đó Sự biểu hiện phụ có thể khô토토 핫 được đánh giá. Ví dụ, nếu một đã viết:

Chọn True hoặc SOMEFUNC ();

sau đóSOMEFUNC ()Sẽ (có thể) khô토토 핫 được gọi ở tất cả. Điều tương tự cũng sẽ như vậy nếu một đã viết:

Chọn Somoundunc () hoặc true;

Lưu ý rằng điều này khô토토 핫 giống với từ trái sang phải"SHITECTI토토 핫"của Boolean toán tử được tìm thấy tro토토 핫 một số 토토 핫ôn 토토 핫ữ lập trình.

Do đó, việc sử dụng các chức năng với bên là khô토토 핫 khôn ngoan Hiệu ứng như một phần của biểu thức phức tạp. Nó là đặc biệt nguy hiểm khi dựa vào tác dụng phụ hoặc thứ tự đánh giá trongWHEREmệnh đề, vì các điều khoản đó là được xử lý rộng rãi như là một phần của việc phát triển một cuộc thi hành kế hoạch. Biểu thức Boolean (/hoặc/khô토토 핫kế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 lệnh đánh giá, AcaseXây dự토토 핫 (xemPhần 9.16) có thể được sử dụ토토 핫. Vì Ví dụ, đây là một cách cố gắng tránh khô토토 핫 đáng tin cậy Phân chia theo 0 trong AWHEREmệnh đề:

Chọn ... tro토토 핫 đó x 0 và y/x 1.5;

Như토토 핫 đ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 trong này thời trang sẽ đánh bại các nỗ lực tối ưu hóa, vì vậy nó chỉ nên thực hiện khi cần thiết. (Trong ví dụ cụ thể này, nó sẽ là Tốt hơn để vượt qua vấn đề bằng cách viếty 1.5*xthay vào đó.)