簡體   English   中英

在另一列中插入添加的列值

[英]inserting added column values in another column

我有一個名為student的表,具有以下列名和數據

NAME   MARK2      MARK3      mark1      total  
surya  85         95         123        
priya   75         95         25         
vishnu   88         75        27

有什么辦法可以添加列mark1和mark2和mark3並插入總共添加的值,你們可以建議我有關此問題。

這樣嘗試

UPDATE student
   SET total = mark1 + mark2 + mark3;

更好,只是創建一個視圖

CREATE VIEW vw_student AS
SELECT name, mark3, mark2, mark1, mark3 + mark2 + mark1 total
  FROM student;

並用它代替

SELECT * FROM vw_student;

這是兩種方法的SQLFiddle演示


UPDATE:根據您的注釋,您可以創建一個觸發器(實際上是兩個,用於INSERT ,第二個用於UPDATE ),以自動填充total

CREATE TRIGGER tg_bi_student
BEFORE INSERT ON student
FOR EACH ROW
  SET NEW.total = NEW.mark1 + NEW.mark2 + NEW.mark3;

CREATE TRIGGER tg_bu_student
BEFORE UPDATE ON student
FOR EACH ROW
  SET NEW.total = NEW.mark1 + NEW.mark2 + NEW.mark3;

這是用於觸發方法的SQLFiddle


第二次更新由於您實際使用的是Oracle,因此您可以將total定義為一個計算列

CREATE TABLE student
(
  NAME  VARCHAR2(32), 
  MARK2 NUMBER, 
  MARK3 NUMBER, 
  mark1 NUMBER, 
  total NUMBER GENERATED ALWAYS AS (mark1 + mark2 + mark3)
);

您可以通過這種方式更改表的架構

ALTER TABLE student DROP COLUMN total;
ALTER TABLE student ADD total NUMBER GENERATED ALWAYS AS (mark1 + mark2 + mark3);

這是SQLFiddle演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM