Phiên bản được hỗ trợ:hiện tại(173685_381616 / 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

9,18. soi kèo bóng đá truoctran

Phần này mô tảSQL-Compliant có điều soi kèo bóng đá truoctran có sẵn trongPostgreSQL.

TIP

Nếu nhu cầu của bạn vượt xa khả năng của các soi kèo bóng đá truoctran này, bạn có thể muốn xem xét việc viết một chức năng phía máy chủ bằng ngôn ngữ lập trình biểu cảm hơn.

12340_12346

mặc dùHOUNESCE, vĩ đại nhấtÍt nhất12476_12590Variadicđối số mảng.

9.18.1.case

TheSQL caseBiểu thức là một soi kèo bóng đá truoctran chung, tương tự như các câu lệnh IF/ELSE trong các ngôn ngữ lập trình khác:

trường hợp khiđiều soi kèo bóng đá truoctransau đóKết quả[Khi ...]
     [khácresult]
KẾT THÚC

caseCác điều khoản có thể được sử dụng bất cứ nơi nào một biểu soi kèo bóng đá truoctran là hợp lệ. Mỗiđiều soi kèo bóng đá truoctranlà một biểu soi kèo bóng đá truoctran trả về ABooleanKết quả. Nếu kết quả của điều soi kèo bóng đá truoctran là đúng, giá trị củacaseBiểu soi kèo bóng đá truoctran làresultĐiều đó theo điều soi kèo bóng đá truoctran và phần còn lại củacaseBiểu soi kèo bóng đá truoctran không được xử lý. Nếu kết quả của điều kiện không đúng, bất kỳ điều gì tiếp theoKhimệnh đề được kiểm tra theo cách tương tự. Nếu khôngkhi điều soi kèo bóng đá truoctranmang lại sự thật, giá trị củacaseBiểu soi kèo bóng đá truoctran làresultcủakhácmệnh đề. Nếukhácmệnh đề bị bỏ qua và không có điều soi kèo bóng đá truoctran nào là đúng, kết quả là null.

Một ví dụ:

14391_14610

Các loại dữ liệu của tất cảresultBiểu soi kèo bóng đá truoctran phải được chuyển đổi thành một loại đầu ra duy nhất. Nhìn thấyPhần 10.5Để biết thêm chi tiết.

Hồiđơn giảnKhănMẫuCASEBiểu soi kèo bóng đá truoctran là một biến thể của dạng chung ở trên:

caseBiểu soi kèo bóng đá truoctranKhigiá trịsau đóresult[Khi ...]
    [khácresult]
KẾT THÚC

Đầu tiênBiểu soi kèo bóng đá truoctranđược tính toán, sau đó so sánh với mỗigiá trịBiểu soi kèo bóng đá truoctran trongKhimệnh đề cho đến khi một được tìm thấy bằng nó. Nếu không tìm thấy trận đấu,resultcủakhácmệnh đề (hoặc giá trị null) được trả về. Điều này tương tự nhưSwitchTuyên bố trong C.

Ví dụ trên có thể được viết bằng cách sử dụng đơn giảncaseCú pháp:

Chọn A,
       Trường hợp a khi 1 sau đó 'một'
              Khi 2 sau đó 'hai'
              Khác 'Khác'
       KẾT THÚC
    Từ thử nghiệm;

 A | trường hợp
---+-------
 1 | một
 2 | hai
 3 | khác

AcaseBiểu soi kèo bóng đá truoctran không đánh giá bất kỳ biểu soi kèo bóng đá truoctran con nào không cần thiết để xác định kết quả. Ví dụ, đây là một cách có thể để tránh sự thất bại của từng bộ phận:

Chọn ... Trường hợp trường hợp khi x < 0 sau đó y/x 1.5 khác kết thúc sai;

Lưu ý

Như được mô tả trongPhần 4.2.14caseĐánh giá chỉ các biểu hiện phụ cần thiếtKhănkhông phải là sắt. Ví dụ: hằng số1/017110_17217caseARM sẽ không bao giờ được nhập vào thời gian chạy.

9.18.2.HOUNESCE

HOUNESCE(giá trị[, ...])

TheHOUNESCEHàm trả về các đối số đầu tiên của nó không phải là null. NULL chỉ được trả lại nếu tất cả các đối số là null. Nó thường được sử dụng để thay thế một giá trị mặc định cho các giá trị null khi dữ liệu được truy xuất để hiển thị, ví dụ:

Chọn HOUNESCE (Mô tả, Short_Descrip, '(Không)') ...

Điều này trả vềMô tảNếu nó không phải là NULL, nếu khôngShort_descripNếu nó không phải là NULL, nếu không18484_18492.

Tất cả các đối số phải được chuyển đổi thành một loại dữ liệu chung, sẽ là loại kết quả (xemPhần 10.5để biết chi tiết).

như AcaseBiểu soi kèo bóng đá truoctran,HOUNESCE18852_19067NVLIFNULL, được sử dụng trong một số hệ thống cơ sở dữ liệu khác.

9.18.3.nullif

nullif(Value1, Value2)

Thenullifhàm trả về giá trị null nếuValue1bằngvalue2; nếu không thì nó trả vềValue1. Điều này có thể được sử dụng để thực hiện hoạt động nghịch đảo củaHOUNESCEVí dụ đã cho ở trên:

chọn nullif (value, '(none)') ...

Trong ví dụ này, nếugiá trị(Không), null được trả về, nếu không thì giá trị củagiá trịđược trả về.

Hai đối số phải có các loại tương đương. Cụ thể, chúng được so sánh chính xác như thể bạn đã viếtValue1=Value2, vì vậy phải có một phù hợp=Nhà điều hành có sẵn.

20647_20790=Nhà điều hành và trong một số trường hợp sẽ được quảng bá để phù hợp với loại đối số thứ hai. Ví dụ,nullif (1, 2.2)sản lượngSố, vì không cóSố nguyên = Sốtoán tử, chỉSố = Số.

9.18.4.vĩ đại nhấtÍt nhất

vĩ đại nhất(giá trị[, ...])
Ít nhất(giá trị[, ...])

Thevĩ đại nhấtÍt nhấtHàm chọn giá trị lớn nhất hoặc nhỏ nhất từ ​​danh sách bất kỳ số biểu soi kèo bóng đá truoctran nào. Tất cả các biểu soi kèo bóng đá truoctran phải được chuyển đổi thành một loại dữ liệu chung, sẽ là loại kết quả (xemPhần 10.5Để biết chi tiết). Các giá trị null trong danh sách bị bỏ qua. Kết quả sẽ chỉ là NULL nếu tất cả các biểu soi kèo bóng đá truoctran đánh giá thành NULL.

Lưu ý rằngvĩ đại nhấtÍt nhấtkhông thuộc tiêu chuẩn SQL, nhưng là một phần mở rộng phổ biến. Một số cơ sở dữ liệu khác làm cho họ trả về NULL nếu bất kỳ đối số nào là null, thay vì chỉ khi tất cả là NULL.

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.