数据库表id     时间     在线人数
1      2011-9-1     10
2      2011-9-2     20
3      2011-9-3     30
4      2011-9-4     40
5      2011-9-5     50
6      2011-9-6     60
我怎么用sql 查出下面的结果 1  2  3  4  5  6
10  20 30 40 50 60

解决方案 »

  1.   


    这个问题确实好!http://topic.csdn.net/u/20110714/10/44213db7-11d4-4a10-91cf-981817c1c63a.html?34460
    可以参考这个
      

  2.   

    oracle好像有个可以将行列互换的函数,楼主可以搜搜看
      

  3.   

    如果是9i,动态列的话,函数sys_connect_by_path()
    如果是10G的话,用函数:wm_concat()
      

  4.   

    用case..when  或者是 decode 函数 试试看
      

  5.   

    SELECT MAX(decode(id, 1, 在线人数, NULL)) "1",
           MAX(decode(id, 2, 在线人数)) "2",
           MAX(decode(id, 3, 在线人数)) "3",
           MAX(decode(id, 4, 在线人数)) "4",
           MAX(decode(id, 5, 在线人数)) "5",
           MAX(decode(id, 6, 在线人数)) "6"
      FROM test