日期:2014-05-16  浏览次数:20855 次

Oracle 竖列如何横行现实
本帖最后由 NobodyCanHelpMe 于 2012-06-12 23:02:27 编辑 表如下显示:


Name     Level      Month

张三       A          1 

李四       B          2    

王五    C      3

张三       B          2 

李四       B          1   

王五    C          1

张三       B          3 

李四       B          3  

王五    B          2



现在要求如下显示:


姓名    1月份   2月份  3月份

张三      A      B      B

李四      B      B      B

王五      C      B      C



求oracle  sql语句应该如何写.
------最佳解决方案--------------------
easy,
WITH t1 AS (SELECT   '张三' Name, 'A' "LEVEL", 1 Month FROM DUAL
            UNION ALL
            SELECT   '李四', 'B', 2 Month FROM DUAL
            UNION ALL
            SELECT   '王五', 'C', 3 Month FROM DUAL
            UNION ALL
            SELECT   '张三', 'B', 2 Month FROM DUAL
            UNION ALL
            SELECT   '李四', 'B', 1 Month FROM DUAL
            UNION ALL
            SELECT   '王五', 'C', 1 Month FROM DUAL
            UNION ALL
            SELECT   '张三', 'B', 3 Month FROM DUAL
            UNION ALL
            SELECT   '李四', 'B', 3 Month FROM DUAL
            UNION ALL
          &