select 运动员ID,count(*) 
from table where 成绩='21' and 比赛名称=‘女子乒乓球决赛’
group by 运动员ID

解决方案 »

  1.   

    select * from table_name where 比赛名称 = '男子短跑100M决赛' order by 国家ID
      

  2.   

    SELECT * FROM 运动会比赛成绩表 
    ORDER BY (CASE 比赛名称 WHEN '男子短跑100M决赛' THEN 1
                            WHEN '女子乒乓球决赛' THEN 2) DESC
    没有试过
      

  3.   

    --分组排序.
    SELECT * 
    FROM 运动会比赛成绩表 
    ORDER BY 比赛名称
      ,CASE 比赛名称 WHEN '男子短跑100M决赛' THEN 成绩 else end
      ,CASE 比赛名称 WHEN '女子乒乓球决赛'  THEN 成绩 else end
      

  4.   

    --上面错了,改一下:SELECT * 
    FROM 运动会比赛成绩表 
    ORDER BY 比赛名称
      ,CASE 比赛名称 WHEN '男子短跑100M决赛' THEN 成绩 end
      ,CASE 比赛名称 WHEN '女子乒乓球决赛'  THEN cast(成绩 as int) end
      

  5.   

    --下面是例子--测试数据
    declare @运动会比赛成绩表 table(比赛名称 varchar(20),运动员ID varchar(3),国家ID varchar(3)
    ,成绩 varchar(10),回合数 int,成绩单位 varchar(10))
    insert into @运动会比赛成绩表
    select '男子短跑100M决赛','011','CHN','10''22''',1,'时间'
    union all select '男子短跑100M决赛','012','USA','11''01''',1,'时间'
    union all select '女子乒乓球决赛','013','JAP','5',1,'分'
    union all select '女子乒乓球决赛','013','JAP','10',2,'分'
    union all select '女子乒乓球决赛','013','JAP','11',3,'分'
    union all select '女子乒乓球决赛','014','CHN','21',1,'分'
    union all select '女子乒乓球决赛','014','CHN','21',2,'分'
    union all select '女子乒乓球决赛','014','CHN','21',3,'分'--查询
    SELECT * 
    FROM @运动会比赛成绩表 
    ORDER BY 比赛名称
      ,CASE 比赛名称 WHEN '男子短跑100M决赛' THEN 成绩 end
      ,CASE 比赛名称 WHEN '女子乒乓球决赛'  THEN cast(成绩 as int) end/*--测试结果比赛名称              运动员ID 国家ID 成绩  回合数       成绩单位       
    -------------------- ----- ---- ---------- ----------- ---------- 
    男子短跑100M决赛      011   CHN  10'22'     1           时间
    男子短跑100M决赛      012   USA  11'01'     1           时间
    女子乒乓球决赛        013   JAP  5          1           分
    女子乒乓球决赛        013   JAP  10         2           分
    女子乒乓球决赛        013   JAP  11         3           分
    女子乒乓球决赛        014   CHN  21         1           分
    女子乒乓球决赛        014   CHN  21         2           分
    女子乒乓球决赛        014   CHN  21         3           分(所影响的行数为 8 行)
    --*/