SQL - ОГРАНИЧЕНИЕ - PullRequest
       10

SQL - ОГРАНИЧЕНИЕ

2 голосов
/ 19 марта 2020

Можно ли создать таблицу, которая автоматически обновляет значение столбца в зависимости от значения другого столбца?

Например, мне нужно создать таблицу 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)

1 Ответ

4 голосов
/ 19 марта 2020

Да, существует нечто, называемое виртуальный столбец :

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

Функция coalesce возвращает первый из своих аргументов, который не является нулевым.

Обратите внимание, что вы не можете вставлять или обновлять значения в виртуальном столбце, они вычисляются базой данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...