+ -
当前位置:首页 → 问答吧 → 查询

查询

时间:2011-09-20

来源:互联网

数据库表

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

作者: z471045900   发布时间: 2011-09-20

你为什么要这样的结果?

作者: luoyoumou   发布时间: 2011-09-20

引用 1 楼 luoyoumou 的回复:
你为什么要这样的结果?


这个问题确实好!

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

作者: horizonlyhw   发布时间: 2011-09-20

统计用的能不能实现

作者: z471045900   发布时间: 2011-09-20

好像不行

作者: z471045900   发布时间: 2011-09-20

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

作者: ksqqxq   发布时间: 2011-09-20

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

作者: cosio   发布时间: 2011-09-20

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

作者: yrg5101   发布时间: 2011-09-20

后台数据最好不要动,用前台报表工具实现(行列互换)

作者: coolkisses   发布时间: 2011-09-20

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

作者: leohuang   发布时间: 2011-09-20

热门下载

更多