2017-10-31 9 views
0

p_CreditHourが0〜30(を含む)の場合、システムは「この生徒は新入生です」というメッセージを画面に表示します。 31〜60クレジットの場合は、「この学生はソフォモアです」、61〜90クレジットの間に「この学生はジュニアです」と印刷します。 91以上のクレジットのために、 "この学生はシニアです"と印刷します。PL/SQLこれが文の場合は動作しますか?

次のプログラムは、以前の問題のロジックを反映していますか?

IF credit <= 30 THEN 
    dbms_output.putline ('This student is a Freshmen'.); 
END IF; 
IF credit <= 60 THEN 
    dbms_output.putline ('This student is a 
Sophomore.'); 
END IF; 
IF credit <= 90 THEN 
    dbms_output.putline ('This student is a Junior.'); 
END IF; 
IF credit > 90 THEN 
    dbms_output.putline ('This student is a Senior.'); 
END IF; 

答えて

1

15は30,60,90より小さいため、学生はFrechman、Sophomore、Juniorになります。しかし、OracleにはELSIFがあります。

IF credit <= 30 THEN 
    dbms_output.putline ('This student is a Freshmen'.); 
ELSIF credit <= 60 THEN 
    dbms_output.putline ('This student is a Sophomore.'); 
ELSIF credit <= 90 THEN 
    dbms_output.putline ('This student is a Junior.'); 
ELSE 
    dbms_output.putline ('This student is a Senior.'); 
END IF; 
1

また、CASE文があります。

begin 
    for s in (select 1 student, 25 credits from dual union all 
      select 2 student, 35 credits from dual union all 
      select 3 student, 65 credits from dual union all 
      select 4 student, 85 credits from dual union all 
      select 5 student, 95 credits from dual 
      ) 
    loop 
     dbms_output.put('Student ' || to_char(s.student) || ' is a '); 
     case when s.credits <= 30 then dbms_output.put_line(' Freshman.'); 
      when s.credits <= 60 then dbms_output.put_line(' Sophomore.'); 
      when s.credits <= 90 then dbms_output.put_line(' Junior.'); 
      else dbms_output.put_line(' Senior.'); 
     end case; 
    end loop; 
end; 
0

またはADD文を使用できます。

IF credit <= 30 THEN 
dbms_output.putline ('This student is a Freshmen'.); 
ElSIF credit <= 60 AND credit > 30 THEN 
dbms_output.putline ('This student is a Sophomore.'); 
ELSIF credit <= 90 AND credit > 60 THEN 
dbms_output.putline ('This student is a Junior.'); 
ELSE 
dbms_output.putline ('This student is a Senior.'); 
END IF; 
関連する問題