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
SELECT '王五', 'B', 2 Month FROM DUAL)