Menu
CoddyTech

NULLIF và IIF

Thuộc phần Vượt ra ngoài kiến thức cơ bản trong hành trình SQL của Coddy. Bài học 4 trên 27.

Còn hai hàm hỗ trợ điều kiện nữa, cả hai đều nhỏ gọn và hữu ích.

NULLIF(a, b) trả về NULL khi a = b, nếu không thì trả về a. Cách dùng phổ biến là tránh phép chia cho không:

SELECT total / NULLIF(count, 0) AS average
FROM stats

Nếu count bằng không, ta nhận được NULL thay vì gặp lỗi.

IIF(cond, a, b) là cách viết tắt hai nhánh cho CASE WHEN cond THEN a ELSE b END. Hãy dùng nó khi chỉ có hai lựa chọn; dùng CASE khi có nhiều nhánh hơn.

challenge icon

Thử thách

Dễ

Các bảng và cột hiện có:

  • matches: id, shots, goals

Trả về cho mỗi trận đấu:

  • id
  • conversion: goals * 1.0 / shots, nhưng trả về NULL khi shots là 0 (dùng NULLIF)
  • verdict: 'win' khi goals > 0, nếu không thì trả về 'no goals' (dùng IIF)

Sắp xếp theo id.

Tự làm thử

SELECT id,
       -- Chuyển đổi bằng NULLIF
       -- Xác định kết quả bằng IIF
FROM matches
ORDER BY id
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Vượt ra ngoài kiến thức cơ bản

Tự luyện tập: Playground SQL