我正在尝试为考试制作一个表格,它看起来像:ExamID | Name | Points | Grade
其中 Points 等于 0 到 100 之间的某个值。现在我想根据 Points 的值自动设置 Grade 的值。如果 > 90 等级=A...
执行此操作的 sql 查询的基本语法是什么 ?无论如何,我会根据我的需要调整它。
尝试使用 CASE 语法,但无法做到。我猜我应该使用 UPDATE 查询,而不是 INSERT 查询。
最佳答案
您可以使用计算列。创建表后 没有 Grade
列,您可以添加这样的计算列(这应该至少适用于 SQL Server
,但您可能需要在其他 DBMS 的 sql 上找到差异):
ALTER TABLE Exams
ADD Grade AS
CASE
WHEN (Points > 90) THEN 'A'
WHEN (Points > 70) THEN 'B'
WHEN (Points > 50) THEN 'C'
ELSE 'D'
END
根据您的 DBMS,您可能希望使用 触发器 用于插入和更新,但触发器的语法在很大程度上取决于您使用的系统。
如果
Grade
只是计算出来的,你真的不需要存储它,你可以使用 View
相反,或者在查询表时直接创建它并且没有 Grade
列。
关于sql - 根据另一列填充一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27352332/