1.1 Danh sách hàm điều kiện

Ngôn ngữ SQL có một danh sách các hàm hơi giống với toán tử if-elsetrong switchJava.

Tổng cộng có 4 chức năng như vậy:

Chức năng Sự miêu tả
1 TRƯỜNG HỢP công tắc tương tự
2 NẾU NHƯ() Một dạng tương tự của toán tử bậc ba hoặc if-else
3 IFNULL() tương tự của if-else
4 NULLIF() tương tự của if-else

Ba cái cuối cùng trong SQL được biểu diễn dưới dạng các hàm và CASElà một toán tử chính thức, vì vậy chúng tôi sẽ xem xét nó một cách riêng biệt ở phần cuối.

1.2 Hàm IF()

Hàm IF()trong SQL hơi giống với toán tử bậc ba trong Java. Trong ngôn ngữ SQL, nó nhận 3 tham số và có dạng như sau:

IF (condition, true, false)

Ba biểu thức phải được chuyển đến hàm IF:

  • một điều kiện được kiểm tra cho sự thật;
  • một biểu thức được trả về khi điều kiện là đúng;
  • một biểu thức được trả về khi điều kiện sai.

Dưới đây tôi sẽ đưa ra một số ví dụ để dễ hiểu hơn về cách thức hoạt động của nó:

Lời yêu cầu Kết quả
1 CHỌN NẾU( 1>2 , 2, 3) 3
2 CHỌN NẾU( 1<2 , 'có', 'không') 'Đúng'
3 CHỌN NẾU( STRCMP('test','test1' ), 'không', 'có') 'KHÔNG'

1.3 Hàm IFNULL() và NULLIF()

Ngoài ra còn có hai sửa đổi của chức năng IF().

Sửa đổi đầu tiên là chức năng IFNULL(). Nó chỉ nhận hai giá trị:

IFNULL (expression 1, expression 2)

Nếu biểu thức1 không bằng NULL, thì hàm sẽ trả về biểu thức1 . Nếu biểu thức 1 IS NULL, thì hàm sẽ trả về biểu thức 2 . Bản chất là sự thay thế của giá trị mặc định khi trường bằng NULL.

Sửa đổi thứ hai của hàm IFlà hàm NULLIF(), nó cũng nhận hai giá trị:

NULLIF (expression 1, expression 2)

Nó hoạt động theo hướng ngược lại:

  • nếu biểu thức1 bằng biểu thức2 thì hàm trả về NULL;
  • nếu các biểu thức không bằng nhau, thì biểu thức1 được trả về .