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
5396_550712 / 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
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 một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

9,23. kèo bóng đá hom nay sánh hàng và mảng

Phần này mô tả một số cấu trúc chuyên dụng để tạo ra Nhiều kèo bóng đá hom nay sánh giữa các nhóm giá trị. Những hình thức này là liên quan đến cú pháp vào các hình thức phụ của trước đó Phần, nhưng không liên quan đến các nhóm phụ. Các hình thức liên quan đến mảng Các biểu hiện phụ làPostgreSQLPhần mở rộng; phần còn lại làSQL-Compliant. Tất cả các hình thức biểu thức được ghi lại trong phần này trả về kết quả boolean (true/false).

9.23.1.in

Biểu thứcin (giá trị[, ...])

Phía bên tay phải là danh sách dấu ngoặc đơn của vô hướng biểu cảm. Kết quả là"true"Nếu Kết quả biểu thức bên trái bằng với bất kỳ bên phải nào biểu cảm. Đây là một ký hiệu tốc ký cho

Biểu thức=Value1hoặcBiểu thức=value2hoặc
...

Lưu ý rằng nếu biểu thức bên trái mang lại NULL, hoặc nếu có ở đó không có giá trị tay phải bình đẳng và ít nhất một tay phải Biểu thức mang lại NULL, kết quả củainXây dựng sẽ là NULL, không sai. Điều này phù hợp với SQL Các quy tắc bình thường cho các kết hợp boolean của các giá trị null.

9.23.2.không ở

12256_12268không trong (giá trị[, ...])

Phía bên phải là danh sách dấu ngoặc đơn của vô hướng biểu cảm. Kết quả là"True"12482_12603

Biểu thức<Value1Biểu thức<value2và
...

Lưu ý rằng nếu biểu thức bên trái mang lại NULL hoặc nếu có ở đó không có giá trị tay phải bình đẳng và ít nhất một tay phải Biểu thức mang lại NULL, kết quả củaKhông TRONGXây dựng sẽ là NULL, không đúng như người ta có thể ngây thơ trông chờ. Điều này phù hợp với các quy tắc bình thường của SQL cho Boolean sự kết hợp của các giá trị null.

Tip: x không ở ylà tương đương vớikhông (x in y)Trong mọi trường hợp. Tuy nhiên, null Các giá trị có nhiều khả năng vượt qua người mới khi làm việc vớikhông ởhơn khi làm việc vớiin. Tốt nhất là thể hiện tình trạng của bạn một cách tích cực nếu khả thi.

9.23.3.Any/Một số(kèo bóng đá hom nay)

Biểu thức Nhà điều hànhany (Biểu thức kèo bóng đá hom nay)Biểu thức Nhà điều hànhMột số (Biểu thức kèo bóng đá hom nay)

Phía bên phải là biểu thức dấu ngoặc đơn, phải mang lại một giá trị mảng. Biểu thức bên trái được đánh giá và kèo bóng đá hom nay với từng phần tử của mảng bằng cách sử dụng đã choNhà điều hành, phải mang lại kết quả boolean. Kết quả củaany"True"Nếu có được kết quả đúng. Kết quả là"Sai"Nếu không tìm thấy kết quả đúng (bao gồm trường hợp kèo bóng đá hom nay có phần tử bằng không).

Nếu biểu thức kèo bóng đá hom nay mang lại một kèo bóng đá hom nay null, kết quả củabất kỳsẽ là NULL. Nếu bên trái Biểu thức mang lại null, kết quả củabất kỳIS Thông thường NULL (mặc dù một toán tử kèo bóng đá hom nay sánh không nghiêm ngặt có thể có thể mang lại một kết quả khác nhau). Ngoài ra, nếu mảng bên phải chứa bất kỳ yếu tố null nào và không có kết quả kèo bóng đá hom nay sánh đúng thu được, kết quả củaanysẽ là NULL, không sai (một lần nữa, giả sử một toán tử kèo bóng đá hom nay sánh nghiêm ngặt). Đây là phù hợp với các quy tắc bình thường của SQL cho các kết hợp boolean của giá trị null.

Một sốlà từ đồng nghĩa vớiany.

9.23.4.tất cả(kèo bóng đá hom nay)

Biểu thức Nhà điều hànhAll (Biểu thức kèo bóng đá hom nay)

Phía bên phải là biểu thức dấu ngoặc đơn, phải mang lại một giá trị mảng. Biểu thức bên trái được đánh giá và kèo bóng đá hom nay với từng phần tử của mảng bằng cách sử dụng đã choNhà điều hành, phải mang lại kết quả boolean. Kết quả củatất cả"True"Nếu tất cả các kèo bóng đá hom nay sánh đều đúng (bao gồm cả trường hợp mảng có các phần tử bằng không). Kết quả là"Sai"Nếu có bất kỳ kết quả sai nào được tìm thấy.

16062_16123tất cảsẽ là NULL. Nếu bên trái Biểu thức mang lại null, kết quả củatất cả16243_16463tất cảsẽ là NULL, Không đúng (một lần nữa, giả sử một toán tử kèo bóng đá hom nay sánh nghiêm ngặt). Đây là trong phù hợp với các quy tắc bình thường của SQL cho sự kết hợp boolean của null giá trị.

9.23.5. kèo bóng đá hom nay sánh hàng theo hàng

Row_Constructor Nhà điều hành Row_Constructor

Mỗi bên là một hàm tạo kèo bóng đá hom nay, như được mô tả trongPhần 4.2.13. Hai giá trị hàng phải có cùng một số trường. Mỗi bên được đánh giá và chúng được kèo bóng đá hom nay sánh hàng khôn ngoan. Hàng ngang kèo bóng đá hom nay sánh được cho phép khiNhà điều hành=, <, <, <=, hoặc =hoặc có ngữ nghĩa tương tự như một trong những những cái này. (Để cụ thể, người vận hành có thể là một kèo bóng đá hom nay sánh hàng toán tử nếu đó là thành viên của lớp toán tử B-cây hoặc là người phủ định=Thành viên của một cây B lớp toán tử.)

The=<trường hợp hoạt động hơi khác kèo bóng đá hom nay với người khác. Hai hàng được coi là bằng nhau nếu tất cả tương ứng của chúng Thành viên không null và bình đẳng; các hàng không đồng đều nếu có Các thành viên tương ứng là không null và không đồng đều; nếu không thì kết quả của kèo bóng đá hom nay sánh hàng không rõ (NULL).

cho<, <=, =trường hợp, các phần tử hàng được kèo bóng đá hom nay sánh từ trái sang phải, dừng lại ngay khi một cặp không đồng đều hoặc vô tính các yếu tố được tìm thấy. Nếu một trong hai cặp yếu tố này là null, thì kết quả của kèo bóng đá hom nay sánh hàng vẫn chưa được biết (NULL); nếu không thì kèo bóng đá hom nay sánh cặp yếu tố này xác định kết quả. Vì ví dụ,kèo bóng đá hom nay (1,2, null) <kèo bóng đá hom nay (1,3,0)mang lại sự thật, không phải null, vì cặp phần tử thứ ba không được xem xét.

Lưu ý:trướcPOSTGRESQL8.2,<, <=, =trường hợp là Không được xử lý theo thông số kỹ thuật SQL. Một kèo bóng đá hom nay sánh nhưkèo bóng đá hom nay (a, b) <row (c, d)đã được triển khai làA <C và B <Dtrong khi hành vi chính xác tương đương vớiA <C hoặc (A = C và B < d).

ROW_Constructorkhác vớiRow_Constructor

19350_19383<kèo bóng đá hom nay sánh hàng, nhưng nó không mang lại null cho đầu vào null. Thay vào đó, bất kỳ giá trị null nào cũng được coi là không đồng đều (khác biệt với) bất kỳ giá trị không khống nào và bất kỳ hai null nào đều được coi là bằng nhau (không riêng biệt). Do đó, kết quả sẽ đúng hay sai, không bao giờ vô giá trị.

Row_Constructorkhông khác biệt vớiRow_Constructor

Cấu trúc này tương tự như=Hàng kèo bóng đá hom nay sánh, nhưng nó không mang lại null cho đầu vào null. Thay vì, Bất kỳ giá trị null nào cũng được coi là không đồng đều với (khác biệt) bất kỳ giá trị không null và bất kỳ hai null nào được coi là bằng nhau (không riêng biệt). Do đó, kết quả sẽ luôn đúng hoặc sai, không bao giờ null.

Lưu ý:Thông số kỹ thuật SQL yêu cầu kèo bóng đá hom nay sánh hàng theo Để trả về null nếu kết quả phụ thuộc vào việc kèo bóng đá hom nay sánh hai giá trị null hoặc null và không null.PostgreSQLĐiều này chỉ khi kèo bóng đá hom nay sánh Kết quả của hai hàm tạo hàng hoặc kèo bóng đá hom nay sánh một hàm tạo hàng với đầu ra của một trình truy vấn con (như trongPhần 9.22). Trong các bối cảnh khác Trong đó kèo bóng đá hom nay sánh hai giá trị loại tổng hợp, hai giá trị trường null được coi là bằng nhau, và một null được coi là lớn hơn một không null. Điều này là cần thiết để có sự sắp xếp nhất quán và Hành vi lập chỉ mục cho các loại tổng hợp.