簡體   English   中英

SQL-約束

[英]SQL- CONSTRAINT

是否可以創建一個根據另一列值自動更新列值的表?

例如,我需要創建一個 GRADES 表:

GRADES-> STUDENT_ID GRADE1 GRADE2 GRADE3 FINAL_GRADE

我希望最終成績中的值等於不為空的最后一個成績。 例如,

(studentid = 12345 grade1 = null grade2 = null grade3 = null finalgrade =null)
(studentid = 12345 grade1 = 80 grade2 = null grade3 = null finalgrade =80)
(studentid = 12345 grade1 = 80 grade2 = 75 grade3 = null finalgrade =75)
(studentid = 12345 grade1 = 80 grade2 = 75 grade3 = 90 finalgrade =90)

是的,有一種叫做虛擬列的東西:

alter table grades
add final_grade generated always as (coalesce(grade3,grade2,grade1));

coalesce函數返回它的第一個不為空的參數。

請注意,您不能在虛擬列中插入或更新值,它們由數據庫計算。

暫無
暫無

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

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