Phần này mô tảSQL-Compliant có điều kèo bóng đá pháp có sẵn trongPostgreSQL.
Nếu nhu cầu của bạn vượt xa khả năng của các kèo bóng đá pháp này, bạn có thể muốn xem xét việc viết một hàm phía máy chủ bằng ngôn ngữ lập trình biểu cảm hơn.
mặc dùHOUNESCE
, vĩ đại nhất
vàÍt nhất
12525_12639Variadic
đối số mảng.
case
TheSQL case
Biểu thức là kèo bóng đá pháp 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 kèo bóng đá pháp
sau đóresult
[Khi ...] [khácKết quả
] KẾT THÚC
case
Các điều khoản có thể được sử dụng bất cứ nơi nào một biểu kèo bóng đá pháp là hợp lệ. Mỗiđiều kèo bóng đá pháp
là một biểu kèo bóng đá pháp trả về ABoolean
13619_13682case
Biểu kèo bóng đá pháp làresult
Điều đó theo điều kèo bóng đá pháp và phần còn lại củacase
Biểu kèo bóng đá pháp 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 theoKhi
Điều khoản được kiểm tra theo cách tương tự. Nếu khôngKhi
điều kèo bóng đá pháp
mang lại sự thật, giá trị củacase
Biểu kèo bóng đá pháp làresult
củakhác
mệnh đề. Nếukhác
14324_14390
Một ví dụ:
Chọn * từ kiểm tra; Một --- 1 2 3 Chọn A, Trường hợp khi a = 1 thì 'một' Khi a = 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
Các loại dữ liệu của tất cảresult
Biểu kèo bóng đá pháp 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.
Có mộtMạnhđơn giảnHồiMẫucase
Biểu kèo bóng đá pháp là một biến thể của dạng chung ở trên:
caseBiểu kèo bóng đá pháp
Khigiá trị
sau đóKết quả
[Khi ...] [khácKết quả
] KẾT THÚC
Đầu tiên15524_15536
được tính toán, sau đó so sánh với từnggiá trị
Biểu kèo bóng đá pháp trongKhi
mệ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,result
củakhác
mệnh đề (hoặc giá trị null) được trả về. Điều này tương tự nhưSwitch
Tuyên bố trong C.
Ví dụ trên có thể được viết bằng cách sử dụng đơn giảncase
Cú 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
Acase
16320_16491
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;
Như được mô tả trongPhần 4.2.1416826_16961case
Chỉ đánh giá các biểu hiện phụ cần thiếtkhông phải là sắt. Ví dụ: hằng số1/0
17159_17266case
ARM sẽ không bao giờ được nhập vào thời gian chạy.
HOUNESCE
Coalesce
(giá trị
[, ...])
TheHOUNESCE
Hà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 Hạt (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_Descrip
Nếu nó không phải là NULL, nếu không(Không)
.
Tất cả các đối số phải được chuyển đổi thành kiểu dữ liệu chung, sẽ là loại kết quả (xemPhần 10.5Để biết chi tiết).
như Acase
Biểu kèo bóng đá pháp,HOUNESCE
Chỉ đánh giá các đối số cần thiết để xác định kết quả; Đó là, các đối số ở bên phải của đối số không null đầu tiên không được đánh giá. Chức năng tiêu chuẩn SQL này cung cấp các khả năng tương tựNVL
vàIFNULL
, được sử dụng trong một số hệ thống cơ sở dữ liệu khác.
nullif
nullif
(Value1
,Value2
)
Thenullif
Hàm trả về giá trị null nếuValue1
bằ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ủaHOUNESCE
Ví dụ đã cho ở trên:
Chọn nullif (value, '(none)') ...
Trong ví dụ này, nếugiá trị
là(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ết
, vì vậy phải có một phù hợpValue1
=Value2
=
Nhà điều hành có sẵn.
Kết quả có cùng loại với đối số đầu tiên - nhưng có một sự tinh tế. Những gì thực sự được trả lại là đối số đầu tiên của ngụ ý=
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ố
.
vĩ đại nhất
vàÍt nhất
vĩ đại nhất
(giá trị
[, ...])
Ít nhất
(giá trị
[, ...])
Thevĩ đại nhất
vàÍt nhất
Hàm chọn giá trị lớn nhất hoặc nhỏ nhất từ danh sách bất kỳ số lượng biểu kèo bóng đá pháp nào. Tất cả các biểu kèo bóng đá pháp 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 kèo bóng đá pháp đánh giá thành NULL.
Lưu ý rằngvĩ đại nhất
vàÍt nhất
khô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.
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.