首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

这个查询如何搞,求指导,多谢

2013-11-12 
这个查询怎么搞,求指导,谢谢 create tableGreade(gid number,chinese number not null,matchnumber not nu

这个查询怎么搞,求指导,谢谢
 create table  Greade(
  gid number,
  chinese number not null,
  match  number not null,
  english number not null,
  primary key (gid)
 )
insert into Greade values (1,'45',96,'67');
insert into Greade values (2,'22',76,'45');
insert into Greade values (3,'76',36,'55');

查询的结果要变成  分数小于60 的为不及格 ,大于60 小于80的 为及格,大于等于80的为优秀
     例如
          gid    chinese   match   english
          1      不及格      优秀      及格


求指导,谢谢! sql
[解决办法]


select gid,
CASE
         WHEN chinese < 60 THEN
          '不及格'
         WHEN chinese < 80 THEN
          '及格'
          ELSE
          '优秀'
       END as chinese,
CASE
         WHEN match < 60 THEN
          '不及格'
         WHEN match  < 80 THEN
          '及格'
          ELSE
          '优秀'
       END as match,
CASE
         WHEN english < 60 THEN
          '不及格'
         WHEN english < 80 THEN
          '及格'
          ELSE
          '优秀'
       END as english
  from Greade; 

[解决办法]
SELECT greade.*,Decode(Sign(greade.english-80),0,'優秀',1,'優秀',Decode(Sign(greade.english-60),1,'及格',0,'及格','不及格')) FROM greade;
[解决办法]
引用:

select gid,
CASE
         WHEN chinese < 60 THEN
          '不及格'
         WHEN chinese < 80 THEN
          '及格'
          ELSE
          '优秀'
       END as chinese,
CASE
         WHEN match < 60 THEN
          '不及格'
         WHEN match  < 80 THEN
          '及格'
          ELSE
          '优秀'
       END as match,
CASE
         WHEN english < 60 THEN
          '不及格'
         WHEN english < 80 THEN
          '及格'
          ELSE
          '优秀'
       END as english
  from Greade; 
正确 给他70%我要20% 其它平分吧   结贴!

热点排行