原始表:name            course              score
-----------------------------------------
张三            语文                80
张三            数学                75
张三            外语                60
李四            语文                90
李四            数学                85
李四            外语                70
王五            语文                95
王五            数学                80
王五            外语                75
结果表:姓名         语文        数学        外语
-----------------------------------------
张三         80          75          60
李四         90          85          70
王五         95          80          75=========================================原始表:city          volume
---------------------
北京          16000
东莞          5000
上海          200000
广州          8500
湛江          100000结果表:城市          排名
---------------------
北京          3
东莞          5
上海          1
广州          4
湛江          2

解决方案 »

  1.   

    select name, sum(case when course = "语文" then score else 0 end) "语文",
    sum(case when course = "数学" then score else 0 end) "数学",
    sum(case when course = "外语" then score else 0 end) "外语" 
    from table1 group by name;select city, row_number() over(order by volume desc) "排名" from table2;
      

  2.   

    原始表: name            course              score 
    ----------------------------------------- 
    张三            语文                80 
    张三            数学                75 
    张三            外语                60 
    李四            语文                90 
    李四            数学                85 
    李四            外语                70 
    王五            语文                95 
    王五            数学                80 
    王五            外语                75 
    结果表: 姓名        语文        数学        外语 
    ----------------------------------------- 
    张三        80          75          60 
    李四        90          85          70 
    王五        95          80          75 ========================================= SELECT name,SUM(DECODE(course,'语文',score,0)),SUM(DECODE(course,'数学',score,0)),SUM(DECODE(course,'外语',score,0)) FROM tb1 GROUP BY name;
      

  3.   

    原始表: city          volume 
    --------------------- 
    北京          16000 
    东莞          5000 
    上海          200000 
    广州          8500 
    湛江          100000 结果表: 城市          排名 
    --------------------- 
    北京          3 
    东莞          5 
    上海          1 
    广州          4 
    湛江          2 SELECT city "城市",rownum "排名" FROM tb2 ORDER BY volume DESC
      

  4.   

    要这么写的话需要嵌套一下
    select city 城市,rownum 排名 from(
      select city from tb2 order by volume desc)
      

  5.   

    上面的语句有问题
    SELECT city "城市",row_number() OVER(ORDER BY volume DESC) "排名" FROM tb2 ORDER BY ROWID;
      

  6.   

    1、select name,max(case when course='语文' then score end) "语文",
    max(case when course='数学' then score end) "数学",
    max(case when course='外语' then score end) "外语" 
    from table_name group by name;
    2、select city "城市",row_number() over(order by volume desc) as "排名" from ww0924 order by rowid;