PostgreSQL: kèo bóng đá hôm | |||
---|---|---|---|
prev | UP | Chương 9. Các chức năng và toán tử | Tiếp theo |
Phần này mô tả một số cấu trúc chuyên dụng để thực hiện nhiều kèo bóng đá euro sánh 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ụ.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).
Biểu thứcin (giá trị[, ...])
Phía bên phải là danh sách dấu ngoặc đơn của các biểu thức vô hướng. 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ỳ 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=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 kèo bóng đá euro 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ủainXây dựng sẽ là NULL, kèo bóng đá euro 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.
Biểu thứckèo bóng đá euro trong (giá trị[, ...])
Phía bên phải là danh sách dấu ngoặc đơn của các biểu thức vô hướng. Kết quả là"True"Nếu kết quả biểu thức bên trái là kèo bóng đá euro đồ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<Value1vàBiể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 kèo bóng đá euro có giá trị tay phải bằng nhau và ít nhất một biểu thức bên phải mang lại NULL, kết quả củakèo bóng đá euro ởXây dựng sẽ là NULL, kèo bóng đá euro đú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.
Tip: x kèo bóng đá euro ở ylà tương đương vớikèo bóng đá euro (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ớikèo bóng đá euro ởkèo bóng đá euro 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ể.
Biểu thức Nhà điều hànhany (Biểu thức kèo bóng đá euro)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, phải mang lại giá trị mảng. Biểu thức bên trái đượ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 đã choNhà điều hành, phải mang lại kết quả boolean. Kết quả củaanylà"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 cả trường hợp kèo bóng đá euro có phần tử không).
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 biểu thức bên trái mang lại NULL, kết quả củaanythường là NULL (mặc dù một toán tử kèo bóng đá euro sánh 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ả kèo bóng đá euro sánh đú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ử kèo bóng đá euro sánh 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.
Biểu thức Nhà điều hànhAll (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, phải mang lại giá trị mảng. Biểu thức bên trái đượ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 đã choNhà điều hành, phải mang lại kết quả boolean. Kết quả củatất cảlà"True"Nếu tất cả các kèo bóng đá euro sánh đề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à"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 biểu thức bên trái mang lại NULL, kết quả củatất cảthường là NULL (mặc dù một toán tử kèo bóng đá euro sánh 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ả kèo bóng đá euro sánh 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ử kèo bóng đá euro sánh 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 bóng đá euro, như được mô tả trongPhần 4.2.13. Hai giá trị kèo bóng đá euro phải có cùng một số trường.Nhà điều hànhlà=, <, <, <=, hoặc =. Mỗi phần tử hàng phải thuộc loại có lớp toán tử B-cây mặc định hoặc kèo bóng đá euro sánh đã cố gắng có thể tạo ra lỗi.
Lưu ý:Các lỗi liên quan đến số hoặc loại phần tử có thể không xảy ra nếu kèo bóng đá euro sánh được giải quyết bằng các cột trước đó.
The=và<Các trường hợp hoạt động hơi khác kèo bóng đá euro 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;
cho<, <=, và =Các trường hợp, các phần tử hàng được kèo bóng đá euro 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 kèo bóng đá euro sánh hàng vẫn chưa được biết (NULL);kèo bóng đá euro (1,2, null) <kèo bóng đá euro (1,3,0)mang lại sự thật, kèo bóng đá euro phải null, vì cặp phần tử thứ ba kèo bóng đá euro được xem xét.
Lưu ý: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 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 chính xác 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ũ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).
Row_Constructorkèo bóng đá euro 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 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).
Record Nhà điều hành Record
20568_20713PostgreSQLĐiều này chỉ khi kèo bóng đá euro sánh kết quả của hai hàm tạo hàng (như trongPhần 9.23.5) hoặc kèo bóng đá euro sánh 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 kèo bóng đá euro sánh, hai giá trị trường null được coi là bằng nhau và null được coi là lớn hơn kèo bóng đá euro với không null.
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 loại tổng hợp được cho phép khiNhà điều hànhlà=, <, <, <=, 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à [kèo bóng đá euro] khác biệt vớiĐối với các hàm tạo kèo bóng đá euro (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 để kèo bóng đá euro sánh loại tổng hợp:*=, *<, *<, *<=, *và* =. Các toán tử này kèo bóng đá euro sánh biểu diễn nhị phân bên trong của hai hàng.