Oracle数据库判断数字处于哪个范围

有一个等级表,有两个字段,一个存储等级,一个存储对应的分值,比如,A级,为90分以上,B级,为80分以上等等,现在,传入一个数字,判断他是位于哪个等级。麻烦测试后再说,没有测试的不要发表评论哦。

可用case when语句判断数字所处的范围。

如student表中有如下数据:

要求查出,每个人的分数档次,90-100分为优秀,80-89分为良好,60-79分为及格,60分以下为不及格。语句为:

select name,score,
case when score between 90 and 100 then '优秀'
  when score between 80 and 89 then '良好'
    when score between 60 and 79 then '及格'
      when score <60 then '不及格' end åˆ†æ•°æ¡£æ¬¡ from student;

执行结果为:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-25
select 等级,分值 from (
select 等级,分值 from 表 where 分值<=传入的数字 order by 分值 desc) where rownum=1本回答被提问者采纳
第2个回答  2012-12-25
--创建一个过程
CREATE OR REPLACE PROCEDURE get_grade(p_number NUMBER)
IS
BEGIN
IF p_number > 90 THEN
dbms_output.put_line('A');
ELSIF p_number > 80 AND p_number <= 90 THEN
dbms_output.put_line('B');
END IF;
END;
--测试
BEGIN
get_grade(82);
END ;追问

同样谢谢啦,问题解决了,但是,你的办法不是最巧妙的一个,所以,就把满意给了别人哦

第3个回答  2012-12-25
case when呀,行不
相似回答