Я пытался использовать IF ELSE в моем назначении PLSQLLoop и IF заявление в PLSQL
Вот часть моего текущего кода
FETCH c2 into Mark, credit_hour;
IF Mark = 'A+' THEN
Points := Points + (4.0 * credit_hour);
ELSIF Mark = 'A ' THEN
Points := Points + (4.0 * credit_hour);
ELSIF Mark = 'A-' THEN
Points := Points + (3.7 * credit_hour);
ELSIF Mark = 'B+' THEN
Points := Points + (3.3 * credit_hour);
ELSIF Mark = 'B ' THEN
Points := Points + (3.0 * credit_hour);
ELSIF Mark = 'B-' THEN
Points := Points + (2.7 * credit_hour);
ELSIF Mark = 'C+' THEN
Points := Points + (2.3 * credit_hour);
ELSIF Mark = 'C ' THEN
Points := Points + (2.0 * credit_hour);
ELSIF Mark = 'C-' THEN
Points := Points + (1.7 * credit_hour);
ELSIF Mark = 'D+' THEN
Points := Points + (1.3 * credit_hour);
ELSIF Mark = 'D ' THEN
Points := Points + (1.0 * credit_hour);
ELSEIF Mark = 'D-' THEN
Points := Points + (0.7 * credit_hour);
ELSE Mark = 'F' THEN
Points := Points + (0.0 * credit_hour);
END IF;
, но потом я подумал, что может сократить процесс используя двойную петлю параметров, как
FETCH c2 into Mark, credit_hour;
for (i,k) in (A+,A,A-,B+,B,B-,C+,C,C-,D+,D,D-,F) (4.0,4.0,3.7,3.3,3.0,2.7,2.3,2.0,1.7,1.3,1.0,0.7,0.0)
IF Mark = i THEN
Points := Points + (k * credit_hour);
, но я не знаю, как я могу это сделать в PLSQL
Я бы также предложил использовать таблицу, похоже, лучший подход к этой проблеме. –