2013-10-01 62 views

回答

1
WITH t AS 
    (SELECT 1001 studentid, 'john' NAME FROM dual 
    UNION ALL 
    SELECT 1002, 'kane' FROM dual 
    ) 
SELECT * FROM (
SELECT studentid, NAME FROM t) 
pivot (max(studentid) for name in ('john' John, 'kane' Kane)); 
+0

嗨 感谢。我是这个oracle sql的新手。我不写很多疑问,但偶尔需要。您能否请您解释转换背后的逻辑和您的查询 – michael

+0

您可以阅读使用“PIVOT”子句,请参阅文档和链接,例如:http://www.oracle.com/technetwork/articles/sql/11g-pivot-097235 .html,http://www.oracle-base.com/articles/11g/pivot-and-unpivot-operators-11gr1.php – ajmalmhd04