PostgreSQL: kèo chấp bóng đá | |||
---|---|---|---|
Prev | UP | Chương 10. Chuyển đổi loại | Tiếp theo |
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 nhauvàngoạ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
vàÍt nhất
Xâ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
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 đó.
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]
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.
Nếu tỷ lệ kèo bóng đá đầu vào không phải là không biết
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ó.
13028_13264
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ốvà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ạiTextvàSố 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.
Intersectvàngoạ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.
[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. |