Tôi sẽ cố gắng giải thích điều này theo cách càng đơn giản càng tốt để dễ hiểu:
Giả sử, bạn có một bảng Vendor thiết lập một cái gì đó như thế này:
create table Vendor (AccountTerms int, ulARAgeing varchar(50));
Và, sau đó chúng tôi sẽ chèn một số giá trị mẫu cho cả hai cột trong Vendor bảng:
insert into Vendor values
(0,'Test'),
(1,'Test1'),
(2,'Test2');
Tiếp theo, chúng tôi sẽ viết một tuyên bố cập nhật để cập nhật ulARAgeing của bạn dựa trên các giá trị trong AccountTerms cột trong cùng một bảng:
update vendor
set ulARAgeing = (CASE
WHEN AccountTerms = 0
THEN 'Current'
WHEN AccountTerms = 1
THEN '30 Days'
WHEN AccountTerms = 2
THEN '60 Days'
END);
CASE WHEN tương tự như sử dụng IF..ELSE trong hầu hết các ngôn ngữ lập trình khác. Vì vậy, ở đây chúng tôi sẽ cập nhật ulARAgeing hiện có giá trị thành giá trị chuỗi khác nhau dựa trên điều kiện trong trường hợp câu lệnh when. Vì vậy, ví dụ nếu AccountTerms = 0 thì chúng tôi sẽ cập nhật giá trị cho ulARAgeing thành `` Hiện tại '', v.v.
Để kiểm tra xem câu lệnh trên có hoạt động chính xác hay không, bạn chỉ cần chạy câu lệnh cập nhật ở trên và sau đó chọn lại từ bảng:
select * from Vendor;
Kết quả:
+--------------+-----------------+
| AccountTerms | ulARAgeing |
+--------------+-----------------+
| 0 | Current |
| 1 | 30 Days |
| 2 | 60 Days |
+--------------+-----------------+