Cơ sở dữ liệu ‘‘QuanLyTuyenSinh’’có bảng:
DiemKhoiA(SoBaoDanh Nvarchar(50), DiemToan Float, DiemLy Float, DiemHoa Float, DiemUuTien Float, TongDiem Float, KetQua Nvarchar(50))
Câu lệnh cập nhật thông tin cho cột kết quả (cột KetQua) cho từng thí sinh, với thí sinh có tổng điểm từ 13 điểm trở lên thì ghi kết quả ‘‘đỗ’’, ngược lại ghi kết quả là ‘‘trượt’’):
UPDATE DiemKhoiA SET KetQua = CASE WHEN TongDiem>=13 THEN N‘đỗ’ ELSE N‘trượt’
UPDATE DiemKhoiA SET KetQua = CASE WHEN TongDiem>=13 THEN N‘đỗ’ ELSE N‘trượt’ END
UPDATE DiemKhoiA SET CASE WHEN TongDiem>=13 THEN KetQua = N‘đỗ’ ELSE KetQua = N‘trượt’ END
Đáp án đúng: D
Câu hỏi yêu cầu xác định câu lệnh SQL để cập nhật cột KetQua
trong bảng DiemKhoiA
dựa trên điểm TongDiem
. Cụ thể, nếu TongDiem
lớn hơn hoặc bằng 13 thì KetQua
sẽ là 'đỗ', ngược lại là 'trượt'.
Phân tích các đáp án:
- A. DiemKhoiA(SoBaoDanh Nvarchar(50), DiemToan Float, DiemLy Float, DiemHoa Float, DiemUuTien Float, TongDiem Float, KetQua Nvarchar(50)): Đáp án này chỉ mô tả cấu trúc bảng, không phải câu lệnh SQL để cập nhật dữ liệu.
- B. Câu lệnh cập nhật thông tin cho cột kết quả (cột KetQua) cho từng thí sinh, với thí sinh có tổng điểm từ 13 điểm trở lên thì ghi kết quả ‘‘đỗ’’, ngược lại ghi kết quả là ‘‘trượt’’): Đây là mô tả yêu cầu, không phải câu lệnh SQL.
- C. UPDATE DiemKhoiA SET KetQua = CASE WHEN TongDiem>=13 THEN N‘đỗ’ ELSE N‘trượt’: Câu lệnh này thiếu từ khóa
END
để kết thúc biểu thứcCASE
. - D. UPDATE DiemKhoiA SET KetQua = CASE WHEN TongDiem>=13 THEN N‘đỗ’ ELSE N‘trượt’ END: Câu lệnh này đúng cú pháp SQL. Nó sử dụng
CASE
để gán giá trị cho cộtKetQua
dựa trên điều kiệnTongDiem >= 13
. - E. UPDATE DiemKhoiA SET CASE WHEN TongDiem>=13 THEN KetQua = N‘đỗ’ ELSE KetQua = N‘trượt’ END: Câu lệnh này sai cú pháp. Trong câu lệnh
UPDATE
,CASE
phải trả về một giá trị, chứ không phải là một mệnh đề gán giá trị.
Do đó, đáp án đúng là D.