Phần này mô tảSQL-Compliant có điều soi kèo bóng đá truoctran có sẵn trongPostgreSQL.
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.
mặc dùHOUNESCE
, vĩ đại nhất
vàÍt nhất
12476_12590Variadic
đối số mảng.
case
TheSQL case
Biể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 đá truoctran
sau đóKết quả
[Khi ...] [khácresult
] 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 soi kèo bóng đá truoctran là hợp lệ. Mỗiđiều soi kèo bóng đá truoctran
là một biểu soi kèo bóng đá truoctran trả về ABoolean
Kết quả. Nếu kết quả của điều soi kèo bóng đá truoctran là đúng, giá trị củacase
Biể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ủacase
Biể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 theoKhi
mệnh đề được kiểm tra theo cách tương tự. Nếu khôngkhi
điều soi kèo bóng đá truoctran
mang lại sự thật, giá trị củacase
Biểu soi kèo bóng đá truoctran làresult
củakhác
mệnh đề. Nếukhác
mệ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ảresult
Biể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.
CóHồiđơn giảnKhănMẫuCASE
Biể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 đá truoctran
Khigiá 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 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
Biể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;
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/0
17110_17217case
ARM sẽ không bao giờ được nhập vào thời gian chạy.
HOUNESCE
HOUNESCE
(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 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_descrip
Nế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ư Acase
Biểu soi kèo bóng đá truoctran,HOUNESCE
18852_19067NVL
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.
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ố
.
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ố 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
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.