已知下表
+-----+-----------+-------+
| sno | gradeName | score |
+-----+-----------+-------+
|   1 | 语文      |    80 |
|   2 | 数学      |    80 |
|   3 | 英语      |   100 |
|   4 | 英语      |    90 |
+-----+-----------+-------+
显示的结果
gradeName score score
英语      100   90 
sql怎么写 

解决方案 »

  1.   

    select * form 表名 where greadNmae='英语'
      希望对你有用。不知道你是想在什么地方查啊!
      

  2.   

    mysql> create table testcsdn 
        -> ( sno int primary key auto_increment, 
        -> gradeName varchar(4), 
        -> score int 
        -> ); mysql> insert into testcsdn (gradeName,score) values('Chinese',80); 
    Query OK, 1 row affected, 1 warning (0.00 sec) mysql> insert into testcsdn (gradeName,score) values('math',80); 
    Query OK, 1 row affected (0.00 sec) mysql> insert into testcsdn (gradeName,score) values('English',100); 
    Query OK, 1 row affected, 1 warning (0.00 sec) mysql> insert into testcsdn (gradeName,score) values('English',90); 
    Query OK, 1 row affected, 1 warning (0.00 sec) mysql> select *from testcsdn; 
    +-----+-----------+-------+ 
    | sno | gradeName | score | 
    +-----+-----------+-------+ 
    |  1 | Chin      |    80 | 
    |  2 | math      |    80 | 
    |  3 | Engl      |  100 | 
    |  4 | Engl      |    90 | 
    +-----+-----------+-------+ 
    4 rows in set (0.00 sec) mysql> select a.gradeName,a.score,b.score from testcsdn a,testcsdn b 
        ->  where a.gradeName=b.gradeName and 
        -> a.score !=b.score; 
    +-----------+-------+-------+ 
    | gradeName | score | score | 
    +-----------+-------+-------+ 
    | Engl      |    90 |  100 | 
    | Engl      |  100 |    90 | 
    +-----------+-------+-------+ 
    2 rows in set (0.00 sec) 这里出来两条,因为你没有告诉我成绩怎么排,低在前还还高在前 ====================== 
    不过,一般是没有这种用法的, 
    出现这样的情况可能是设计数据库的时候没有用三范式规范起来! 给分吧.谢谢!
      

  3.   

    完全没明白楼主什么意思,如果英语成绩有很多怎么办?
    你期待的结果是:
    gradeName score score  score  score  .....
    英语      100     90      ...   ...
    这样?
      

  4.   

    这么简单不会?
    就是一条查询加个条件啊
    select score form table ××× where gradeName = "英语"
      

  5.   

    如果是考勤用的话那查询出来的数据会有个能确定的最大值,每种情况left join进来然后在查询结果重命名咯,方法就是笨了点不过比较好理解吧这么做