您可以使用计算列。创建没有该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
Run Code Online (Sandbox Code Playgroud)
根据您的 DBMS,您可能希望使用触发器来进行插入和更新,但触发器的语法在很大程度上取决于您所使用的系统。
如果Grade只是计算出来并且您实际上不需要存储它,则可以使用 aView代替,或者在查询表时直接创建它并且根本没有列Grade。
sza*_*ani -3
首先构建架构
**TABLE**
CREATE TABLE Examgrades
(
Examid int auto_increment primary key,
Name varchar(20),
points int,
Grade varchar(1)
);
**INSERT RECORDS**
INSERT INTO Examgrades
(Name, points)
VALUES
('Email', 91),
('Twitter', 80);
**YOUR UPDATE**
update Examgrades
set Grade = 'A'
where points >90;
Run Code Online (Sandbox Code Playgroud)
http://sqlfiddle.com/#!2/d3fd3f/1
| 归档时间: |
|
| 查看次数: |
16200 次 |
| 最近记录: |