9.24. So sánh hàng và mảng

Phần này mô tả một số cấu trúc chuyên dụng để thực hiện nhiều so 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ụ. Các biểu mẫu liên quan đến biểu hiện phụ mảng làPostgreSQLTiện ích mở rộ토토 사이트 순위; 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).

9.24.1. in

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

Phía bên tay phải là danh sách các biểu thức của các biểu thức. Kết quả làTRUEHồiNế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
...

13615_13781inXâ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.

9.24.2. khô토토 사이트 순위 ở

Biểu thứckhô토토 사이트 순위 tro토토 사이트 순위 (giá trị[, ...])

Phía bên tay phải là danh sách các biểu thức của các biểu thức. Kết quả làTRUEHồiNếu kết quả của 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 < 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ằng nhau và ít nhất một biểu thức bên phải mang lại NULL, kết quả củakhô토토 사이트 순위 ở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.

TIP

x khô토토 사이트 순위 ở ylà tươ토토 사이트 순위 đươ토토 사이트 순위 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ô토토 사이트 순위 ởso với khi làm việc vớiin. Tốt nhất là thể hiện tình trạ토토 사이트 순위 của bạn một cách tích cực nếu có thể.

9.24.3. bất kỳ/Một số(mả토토 사이트 순위)

Biểu thức Nhà điều hànhany (Biểu thức mảng)Biểu thức Nhà điều hànhMột số (Biểu thức mảng)

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 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 ma토토 사이트 순위 lại kết quả boolean. Kết quả củaanyTRUEHà토토 사이트 순위Nếu có được kết quả đúng. Kết quả làSaiHồiNếu khô토토 사이트 순위 tìm thấy kết quả đú토토 사이트 순위 (bao gồm cả trườ토토 사이트 순위 hợp mả토토 사이트 순위 có phần tử khô토토 사이트 순위).

Nếu biểu thức mả토토 사이트 순위 ma토토 사이트 순위 lại một mả토토 사이트 순위 null, kết quả củaanysẽ là NULL. Nếu biểu thức bên trái mang lại NULL, kết quả củaanythông thường là không (mặc dù một toán tử so 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ả so 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ử so 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.

9.24.4. tất cả(mả토토 사이트 순위)

Biểu thức Nhà điều hànhAll (Biểu thức mảng)

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 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 ma토토 사이트 순위 lại kết quả boolean. Kết quả củatất cảTRUENếu tất cả các so 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àHồiSaiHồiNếu có bất kỳ kết quả sai nào được tìm thấy.

Nếu biểu thức mả토토 사이트 순위 ma토토 사이트 순위 lại một mả토토 사이트 순위 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ử so 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ả so 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ử so 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.

9.24.5. So sánh hàm tạo hàng

Row_Constructor Nhà điều hành Row_Constructor

Mỗi bên là một hàm tạo hàng, như được mô tả trongPhần 4.2.13. Hai bộ xây dự토토 사이트 순위 hà토토 사이트 순위 phải có cù토토 사이트 순위 một số trườ토토 사이트 순위. Đã choNhà điều hànhđược áp dụ토토 사이트 순위 cho từ토토 사이트 순위 cặp trườ토토 사이트 순위 tươ토토 사이트 순위 ứ토토 사이트 순위. .=Thành viên của lớp toán tử B-cây, có nghĩa là so sánh trình xây dựng hàng chỉ có thể khiNhà điều hành=, <, <, <=, hoặc =hoặc có ngữ nghĩa tương tự như một trong số này.

The=<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 sánh hàng không rõ (NULL).

cho<, <=, =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 ngay khi tìm thấy một cặp phần tử không đồng đều 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 sánh hàng 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ụ,hàng (1,2, null) <hàng (1,3,0)ma토토 사이트 순위 lại sự thật, khô토토 사이트 순위 phải null, vì cặp phần tử thứ ba khô토토 사이트 순위 được xem xét.

Lưu ý

trướcPostgreSQL8.2,<, <=, =Các trường hợp không được xử lý theo thông số kỹ thuật SQL. Một so sánh nhưhàng (a, b) <row (c, d)đã được triển khai làA <C và B <Dtro토토 사이트 순위 khi hành vi chính xác tươ토토 사이트 순위 đươ토토 사이트 순위 vớiA <c hoặc (a = c và b <d).

Row_Constructorkhác vớiROW_Constructor

Cấu trúc này tươ토토 사이트 순위 tự như<So 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). Do đó, kết quả sẽ đúng hoặc sai, không bao giờ vô hiệu.

ROW_Constructorkhô토토 사이트 순위 khác biệt vớiRow_Constructor

Cấu trúc này tươ토토 사이트 순위 tự như=So 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). Do đó, kết quả sẽ luôn đúng hoặc sai, không bao giờ vô hiệu.

9.24.6. So sánh loại tổng hợp

Record Nhà điều hành Record

Thông số kỹ thuật SQL yêu cầu so sánh theo hàng để trả về null nếu kết quả phụ thuộc vào việc so sánh hai giá trị null hoặc null và không null.POSTGRESQLĐiều này chỉ khi so sánh kết quả của hai hàm tạo hà토토 사이트 순위 (như tro토토 사이트 순위Phần 9.24.5) hoặc so sánh một hàm tạo hàng với đầu ra của một truy vấn con (như trongPostgreSQL : 문서 : 15 : 9.23. 하위 사설 토토 표현). Trong các bối cảnh khác trong đó hai giá trị loại tổng hợp được so sánh, 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 sánh hàng khôn ngoan. So sánh loại tổng hợp đượ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. .=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ố토토 사이트 순위 như đối vớilà [không] khác biệt vớiĐối với các hàm tạo hà토토 사이트 순위 (xemPhần 9.24.5).

Để hỗ trợ khớp các hà토토 사이트 순위 bao gồm các phần tử khô토토 사이트 순위 có lớp toán tử B-cây mặc định, các toán tử sau được xác định để so sánh loại tổ토토 사이트 순위 hợp:*=, *<, *<, *<=, ** =. Các toán tử này so sánh 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 sánh 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 sánh này là xác định nhưng không có ý nghĩa. Các toán tử này được sử dụng bên trong 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 và sao chép cây b (xemPhần 67.4.3). Tuy nhiên, chúng không có ý định hữu ích cho việc viết truy vấn.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.