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.
10155_10211hiện tại10327_10408

10.5.Union, casevà soi kèo bóng đá truoctran liên quan

SQLUnion11392_11568giao nhaungoại trừXây dựng giải quyết soi kèo bóng đá truoctran loại không giống nhau theo cách tương tự nhưUnion. Một số cấu trúc khác, bao gồmcase, mảng, Giá trịvĩ đại nhấtÍt nhấtsoi kèo bóng đá truoctran hàm, sử dụng thuật toán giống hệt nhau để khớp với soi kèo bóng đá truoctran 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à soi kèo bóng đá truoctran liên quan

  1. Nếu tất cả soi kèo bóng đá truoctran đầ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 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ả soi kèo bóng đá truoctran bước tiếp theo.[1]

  3. Nếu tất cả soi kèo bóng đá truoctran đầ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 soi kèo bóng đá truoctran đầu vào không phải là không có cùng loại, Fail.

  5. 12933_13062[2]Nếu loại ứng cử viên có thể được chuyển đổi hoàn toàn sang loại khác, nhưng không phải là ngược lại, hãy chọn loại khác làm loại ứng cử viên mới. Sau đó tiếp tục xem xét soi kèo bóng đá truoctran đầu vào còn lại. Nếu, ở bất kỳ giai đoạn nào của quy trình này, một loại ưa thích được chọn, hãy dừng xem xét soi kèo bóng đá truoctran đầu vào bổ sung.

  6. Chuyển đổi tất cả soi kèo bóng đá truoctran đầu vào thành loại ứng cử viên cuối cùng. Thất bại nếu không có chuyển đổi ngầm từ một loại đầu vào đã cho sang loại ứng viê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 soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran minh đơn giản

Chọn 1.2 làm soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran minh chuyển đổi

14655_14744

Ở đâ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 soi kèo bóng đá truoctran minh lồng nhau

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

Lỗi: Các loại soi kèo bóng đá truoctran 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ư là một tổ của soi kèo bóng đá truoctran hoạt động theo cặp; nghĩa là, đầu vào này giống như

(chọn Null Union Chọn NULL) soi kèo bóng đá truoctran minh Chọn 1;

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

giao nhaungoại trừHoạt động được giải quyết theo cặp đôi. Tuy nhiên, soi kèo bóng đá truoctran 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]

hơi giống như xử lý soi kèo bóng đá truoctran đầu vào miền cho soi kèo bóng đá truoctran toán tử và chức năng, hành vi này cho phép một loại miền được bảo tồn thông qua AUnionhoặ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ả soi kèo bóng đá truoctran đầ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 sử dụng.

[2]

Vì lý do lịch sử,casexử lý nókhácmệnh đề (nếu có) là"Đầu tiên"Đầu vào, vớisau đómệnh đề được xem xét sau đó. Trong tất cả soi kèo bóng đá truoctran trường hợp khác,"Từ trái sang phải"có nghĩa là thứ tự trong đó soi kèo bóng đá truoctran biểu thức xuất hiện trong văn bản truy vấn.