Phần này mô tả một số cấu trúc chuyên dụng để thực hiện nhiều so kèo chấp bóng đá hôm nay giữa các nhóm giá trị. Các hình thức này có liên quan về mặt cú pháp đến các hình thức truy vấn con của phần trước, nhưng không liên quan đến các nhóm phụ. Các biểu mẫu liên quan đến biểu hiện phụ mảng làPostgreSQLPhần mở rộng; phần còn lại làSQL-Compliant. Tất cả các biểu mẫu biểu thức được ghi lại trong phần này trả về kết quả boolean (true/false).
in
Biểu thức
in (giá trị
[, ...])
Phía bên phải là danh sách các biểu thức. Kết quả làHồiTRUENếu kết quả biểu thức bên trái bằng với bất kỳ biểu thức bên phải nào. Đây là một ký hiệu tốc ký cho
Biểu thức
=Value1
hoặcBiểu thức
=Value2
hoặc ...
14037_14203in
Xây dựng sẽ là NULL, không sai. Điều này 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 các giá trị null.
không ở
Biểu thức
không trong (giá trị
[, ...])
Phía bên phải là danh sách các biểu thức. Kết quả làHồiTRUENế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 bên phải. Đây là một ký hiệu tốc ký cho
Biểu thức
<Value1
vàBiểu thức
<value2
và ...
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 ngang nhau 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ư người ta có thể mong đợi. Điều này 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 các giá trị null.
x không ở y
tương đương vớikhông (x in y)
Trong mọi trường hợp. Tuy nhiên, các giá trị null có nhiều khả năng vượt qua người mới khi làm việc vớikhông ở
kèo chấp bóng đá hôm nay với 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 có thể.
Any
/một số
(kèo chấp bóng đá hôm nay)Biểu thức
Nhà điều hành
any (Biểu thức kèo chấp bóng đá hôm nay
)Biểu thức
Nhà điều hành
Một số (Biểu thức kèo chấp bóng đá hôm nay
)
Phía bên phải là biểu thức dấu ngoặc đơn, phải mang lại giá trị mảng. Biểu thức bên trái được đánh giá và so kèo chấp bóng đá hôm 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ủabất kỳ
làHồiTRUENếu có được kết quả đúng. Kết quả làfalseHồiNếu không tìm thấy kết quả đúng (bao gồm cả trường hợp kèo chấp bóng đá hôm nay có phần tử không).
Nếu biểu thức kèo chấp bóng đá hôm nay mang lại một kèo chấp bóng đá hôm nay null, kết quả củaany
sẽ là NULL. Nếu biểu thức bên trái mang lại NULL, kết quả củaAny
thông thường là NULL (mặc dù một toán tử so kèo chấp bóng đá hôm nay không nghiêm ngặt có thể mang lại 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 có kết quả so kèo chấp bóng đá hôm nay đúng nào, kết quả củabất kỳ
sẽ là null, không sai (một lần nữa, giả sử một toán tử so kèo chấp bóng đá hôm nay nghiêm ngặt). Điều này 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 các giá trị null.
Một số
là từ đồng nghĩa vớiAny
.
tất cả
(kèo chấp bóng đá hôm nay)Biểu thức
Nhà điều hành
All (Biểu thức kèo chấp bóng đá hôm nay
)
Phía bên phải là biểu thức dấu ngoặc đơn, phải mang lại giá trị mảng. Biểu thức bên trái được đánh giá và so kèo chấp bóng đá hôm 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ả
làTRUENếu tất cả các so kèo chấp bóng đá hôm nay đều có đú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àMạnhSaiNếu có bất kỳ kết quả sai nào được tìm thấy.
Nếu biểu thức kèo chấp bóng đá hôm nay mang lại một kèo chấp bóng đá hôm nay null, kết quả củatất cả
sẽ là NULL. Nếu biểu thức bên trái mang lại NULL, kết quả củatất cả
thông thường là không (mặc dù một toán tử so kèo chấp bóng đá hôm nay không nghiêm ngặt có thể mang lại 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 có kết quả so kèo chấp bóng đá hôm nay sai, kết quả củatất cả
sẽ là null, không đúng (một lần nữa, giả sử một toán tử so kèo chấp bóng đá hôm nay nghiêm ngặt). Điều này 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 các giá trị null.
Row_Constructor
Nhà điều hành
Row_Constructor
Mỗi bên là một hàm tạo kèo chấp bóng đá hôm nay, như được mô tả trongPhần 4.2.13. Hai bộ xây dựng kèo chấp bóng đá hôm nay phải có cùng một số trường. Đã choNhà điều hành
được áp dụng cho từng cặp trường tương ứng. .=
Thành viên của lớp toán tử B-cây, có nghĩa là so kèo chấp bóng đá hôm nay trình xây dựng hàng chỉ có thể khiNhà điều hành
là=
, <
, <
, <=
, hoặc
=
hoặc có ngữ nghĩa tương tự như một trong số này.
The=
và<
Các trường hợp hoạt động hơi khác so với các trường hợp khác. Hai hàng được coi là bằng nhau nếu tất cả các thành viên tương ứng của họ không có null và bằng nhau; Các hàng là không đồng đều nếu bất kỳ thành viên tương ứng nào không phải là null và không đồng đều; nếu không thì kết quả của so kèo chấp bóng đá hôm nay không rõ (NULL).
cho<
, <=
, và
=
Các trường hợp, các phần tử hàng được so sánh từ trái sang phải, dừng lại ngay khi tìm thấy một cặp phần tử không bằng nhau hoặc null. Nếu một trong hai cặp phần tử này là NULL, kết quả của việc so kèo chấp bóng đá hôm nay vẫn chưa được biết (NULL); Nếu không thì so sánh cặp yếu tố này xác định kết quả. Ví dụ,kèo chấp bóng đá hôm nay (1,2, null) <kèo chấp bóng đá hôm 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.
trướcPostgreSQL8.2,<
, <=
, và
=
Các trường hợp không được xử lý theo thông số kỹ thuật SQL. Một so kèo chấp bóng đá hôm nay nhưkèo chấp bóng đá hôm nay (a, b) <row (c, d)
đã được triển khai làA <C và B <D
trong khi hành vi chính xác tương đương vớiA <C hoặc (A = C và B <D)
.
Row_Constructor
khác vớiRow_Constructor
Cấu trúc này tương tự như<
So kèo chấp bóng đá hôm nay, 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 với (khác biệt) 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 khác biệt). Do đó, kết quả sẽ đúng hoặc sai, không bao giờ vô hiệu.
ROW_Constructor
không khác biệt vớiRow_Constructor
Cấu trúc này tương tự như=
So kèo chấp bóng đá hôm nay, 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 với (khác biệt) 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 khác biệt). Do đó, kết quả sẽ luôn đúng hoặc sai, không bao giờ vô hiệu.
Record
Nhà điều hành
Record
Thông số kỹ thuật SQL yêu cầu so kèo chấp bóng đá hôm nay theo hàng để trả về null nếu kết quả phụ thuộc vào việc so kèo chấp bóng đá hôm nay hai giá trị null hoặc null và không null.PostgreSQLĐiều này chỉ khi so kèo chấp bóng đá hôm nay kết quả của hai hàm tạo hàng (như trongPhần 9.23.5) hoặc so kèo chấp bóng đá hôm nay một hàm tạo hàng với đầu ra của một truy vấn con (như trongPhần 9.22). Trong các bối cảnh khác trong đó hai giá trị loại tổng hợp được so kèo chấp bóng đá hôm nay, hai giá trị trường null được coi là bằng nhau và null được coi là lớn hơn so với không null. Điều này là cần thiết để có hành vi sắp xếp và lập chỉ mục nhất quán cho các loại tổng hợp.
Mỗi bên được đánh giá và chúng được so kèo chấp bóng đá hôm nay khôn ngoan. So sánh loại tổng hợp được cho phép khiNhà điều hành
là=
, <
, <
, <=
, hoặc
=
hoặc có ngữ nghĩa tương tự như một trong số này. .=
Thành viên của lớp toán tử B-cây.) Hành vi mặc định của các toán tử trên giống như đối vớilà [không] khác biệt với
Đối với các hàm tạo kèo chấp bóng đá hôm nay (xemPhần 9.23.5).
Để hỗ trợ khớp các hàng bao gồm các phần tử không có lớp toán tử B-cây mặc định, các toán tử sau được xác định để so kèo chấp bóng đá hôm nay loại tổng hợp:*=
, *<
, *<
, *<=
, *
và* =
. Các toán tử này so kèo chấp bóng đá hôm nay biểu diễn nhị phân bên trong của hai hàng. Hai hàng có thể có một biểu diễn nhị phân khác nhau mặc dù so kèo chấp bóng đá hôm nay hai hàng với toán tử bình đẳng là đúng. Thứ tự của các hàng theo các toán tử so kèo chấp bóng đá hôm nay này là xác định nhưng không có ý nghĩa. Các toán tử này được sử dụng nội bộ cho các chế độ xem được vật chất hóa và có thể hữu ích cho các mục đích chuyên dụng khác như sao chép nhưng không có ý định nói chung là hữu ích cho việc viết truy vấn.