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 / 7.3 / 7.2 / 7.1
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 tỷ lệ kèo bóng đá phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

10.5.Union, casevà các cấu trúc tỷ lệ kèo bóng đá quan

SQLUnionCấu trúc phải khớp với các loại có thể không giống nhau để trở thành một tập kết quả duy nhất. Thuật toán độ phân giải được áp dụng riêng cho từng cột đầu ra của truy vấn tỷ lệ kèo bóng đá minh. Thegiao nhaungoại trừXây dựng giải quyết tỷ lệ kèo bóng đá loại không giống nhau theo cách tương tự nhưUnion. Thecase, mảng, giá trị, 11847_11857Ít nhấtXây dựng Sử dụng thuật toán giống hệt nhau để khớp với tỷ lệ kèo bóng đá biểu thức thành phần của chúng và chọn kiểu dữ liệu kết quả.

Loại phân giải choUnion, casevà các cấu trúc tỷ lệ kèo bóng đá quan

  1. Nếu tất cả tỷ lệ kèo bóng đá đầu vào cùng loại và nó không phải làkhông xác định, giải quyết theo loại đó.

  2. Nếu có bất kỳ đầu vào nào thuộc loại miền, hãy coi nó là loại cơ sở của miền cho tất cả tỷ lệ kèo bóng đá bước tiếp theo.[1]

  3. Nếu tất cả tỷ lệ kèo bóng đá đầu vào thuộc loạikhông xác định, giải quyết theo loạiText(loại ưa thích của loại chuỗi). Nếu không thì,không xác địnhĐầu vào bị bỏ qua.

  4. Nếu tỷ lệ kèo bóng đá đầu vào không phải là không biết

  5. Chọn loại đầu vào không phải đầu tiên là loại ưa thích trong danh mục đó, nếu có.

  6. 13028_13264

  7. Chuyển đổi tất cả tỷ lệ kèo bóng đá đầu vào thành loại đã chọn. Thất bại nếu không có chuyển đổi từ đầu vào đã cho sang loại đã chọn.

Một số ví dụ theo sau.

Ví dụ 10-10. Loại độ phân giải với các loại chưa được xác định trong một tỷ lệ kèo bóng đá minh

Chọn Văn bản 'A' AS "Text" Union Chọn 'B';

 chữ
------
 Một
 b
(2 hàng)

Ở đây, theo nghĩa đen không xác định'B'sẽ được giải quyết thành loạiText.

Ví dụ 10-11. Loại độ phân giải trong một tỷ lệ kèo bóng đá minh đơn giản

Chọn 1.2 làm tỷ lệ kèo bóng đá minh "Số" Chọn 1;

 số
---------
       1
     1.2
(2 hàng)

The Literal1.2thuộc loạiSốSố nguyêngiá trị1có thể được đúc ngầmSố, để loại đó được sử dụng.

Ví dụ 10-12. Loại độ phân giải trong một tỷ lệ kèo bóng đá minh chuyển đổi

Chọn 1 làm diễn viên chọn "Real" Union ('2.2' là có thật);

 thực tế
------
    1
  2.2
(2 hàng)

Ở đây, vì loạiRealKhông thể được sử dụng hoàn toàn choSố nguyên, nhưngSố nguyêncó thể được sử dụng hoàn toàn vàoReal, loại kết quả kết hợp được giải quyết làReal.

Ví dụ 10-13. Loại độ phân giải trong một tỷ lệ kèo bóng đá minh lồng nhau

Chọn Null Union Chọn Null Union Chọn 1;

Lỗi: Các loại tỷ lệ kèo bóng đá minh và số nguyên không thể được khớp

Thất bại này xảy ra vìPostgreSQLxử lý nhiềuUnionS như một tổ của tỷ lệ kèo bóng đá hoạt động theo cặp; nghĩa là, đầu vào này giống như

(chọn Null Union Chọn NULL) tỷ lệ kèo bóng đá minh Chọn 1;

bên trongUnionđược giải quyết dưới dạng loại phátText, theo tỷ lệ kèo bóng đá quy tắc được đưa ra ở trên. Sau đó, bên ngoàiUnioncó đầu vào của tỷ lệ kèo bóng đá loạiTextSố nguyên, dẫn đến lỗi tỷ lệ kèo bóng đá sát được. Vấn đề có thể được khắc phục bằng cách đảm bảo rằngtỷ lệ kèo bóng đá minhcó ít nhất một đầu vào của loại kết quả mong muốn.

Intersectngoại trừHoạt động được giải quyết theo cặp đôi. Tuy nhiên, tỷ lệ kèo bóng đá khác được mô tả trong phần này xem xét tất cả các đầu vào của chúng trong một bước độ phân giải.

ghi chú

[1]

16323_16460Unionhoặc cấu trúc tương tự, miễn là người dùng cẩn thận để đảm bảo rằng tất cả tỷ lệ kèo bóng đá đầu vào đều ngầm hoặc rõ ràng về loại chính xác đó. Nếu không thì loại cơ sở của miền sẽ được ưa thích.