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
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.17. Hàng và mảng kèo bóng đá euro sánh

Phần này mô tả một số cấu trúc chuyên dụng cho thực hiện nhiều kèo bóng đá euro sánh giữa các nhóm giá trị. Những hình thức này có liên quan về mặt cú pháp với các hình thức truy vấn con 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ề Boolean (Đúng/Sai) kết quả.

9.17.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ả của biểu thức bên trái bằng bất kỳ Biểu thức tay phải. Đâ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 Không có giá trị tay phải bình đẳng và ít nhất một Biểu thức bên phải mang lại NULL, kết quả củainXây dựng sẽ là NULL, không sai. Đây là trong 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.

9.17.2.không ở

Biểu thứckhông trong (giá trị[, ...])

12932_13019"True"Nếu Kết quả biểu thức bên trái là không đồng đều với tất cả các Biểu thức tay phải. Đây là một ký hiệu tốc ký cho

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 Không có giá trị tay phải bình đẳng và ít nhất một Biểu thức bên phải mang lại NULL, kết quả củakhông ởXây dựng sẽ là NULL, không đúng như một có thể ngây thơ mong đợi. Điều này phù hợp với bình thường của SQL Quy tắc cho các kết hợp boolean của các giá trị null.

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

9.17.3.bất kỳ/Một số(kèo bóng đá euro)

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

Phía bên phải là biểu thức dấu ngoặc đơn, mà Phải mang lại một giá trị mảng. Biểu thức bên trái là được đánh giá và kèo bóng đá euro sánh với từng phần tử của mảng bằng cách sử dụng được chotoán tử, phải mang lại kết quả boolean. Kết quả củabất kỳ"True"Nếu có Kết quả thực sự có được. Kết quả là"Sai"15216_15313

Nếu biểu thức kèo bóng đá euro mang lại một kèo bóng đá euro 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ủaAny15518_15749anysẽ là null, không sai (một lần nữa, giả sử a Toán tử kèo bóng đá euro sánh nghiêm ngặt). Đ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.

Một sốlà từ đồng nghĩa vớibất kỳ.

9.17.4.tất cả(kèo bóng đá euro)

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

Phía bên tay phải là biểu thức dấu ngoặc đơn, mà Phải mang lại một giá trị mảng. Biểu thức bên trái là được đánh giá và kèo bóng đá euro sánh với từng phần tử của mảng bằng cách sử dụng được choNhà điều hành, mà phải mang lại kết quả boolean. Kết quả củatất cả"True"Nếu tất cả kèo bóng đá euro sánh mang lại đúng (bao gồm cả trường hợp đặc biệt trong đó 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.

Nếu biểu thức kèo bóng đá euro mang lại một kèo bóng đá euro null, kết quả củatấ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ảthường là NULL (mặc dù không nghiêm ngặt Nhà điều hành kèo bóng đá euro sánh có thể mang lại một kết quả khác). Ngoài ra, nếu mảng bên phải chứa bất kỳ phần tử null nào và không Kết quả kèo bóng đá euro sánh sai thu được, kết quả củatất cảsẽ là null, không đúng (một lần nữa, giả sử a Toán tử kèo bóng đá euro sánh nghiêm ngặt). Đ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.17.5. kèo bóng đá euro 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 đá euro, như được mô tả trongPhần 4.2.11. Hai giá trị hàng phải có cùng số lượng Cánh đồng. Mỗi bên được đánh giá và chúng được kèo bóng đá euro sánh hàng khôn ngoan. kèo bóng đá euro sánh hàng được cho phép khiNhà điều hành=, <, <, <=, hoặc =hoặc có ngữ nghĩa tương tự như một trong số này. (Để cụ thể, một nhà điều hành có thể là một toán tử kèo bóng đá euro sánh hàng nếu nó là thành viên của cây b lớp toán tử hoặc là người phủ định của=Thành viên của lớp toán tử B-cây.)

The=<18766_19064

cho<, <=, =19219_19538kèo bóng đá euro (1,2, null) < kèo bóng đá euro (1,3,0)mang lại sự thật, không phải null, vì cặp thứ ba các yếu tố không được xem xét.

Lưu ý:trướcPostgreSQL8.2, The<, <=, =Các trường hợp không được xử lý cho mỗi SQL đặc điểm kỹ thuật. Một kèo bóng đá euro sánh nhưkèo bóng đá euro (a, b) <row (c, d)đã được triển khai làA <C và B <DTrong khi hành vi đúng là tương đương vớia <c hoặc (a = c và b <d).

Row_Constructorkhác vớiRow_Constructor

Cấu trúc này tương tự như<kèo bóng đá euro 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 xem xét không đồng đều với (khác biệt với) bất kỳ giá trị không null nào và bất kỳ hai null được coi là bằng nhau (không khác biệt). Do đó, kết quả sẽ luôn luôn đúng hoặc sai, không bao giờ vô hiệu.

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

cấu trúc này tương tự như=kèo bóng đá euro 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 từ) bất kỳ giá trị không null nào và bất kỳ hai null nào đều được xem xét bằng nhau (không khác biệt). Do đó, kết quả sẽ luôn luôn là Đúng hay Sai, không bao giờ null.