大型机中用于转置的DB2SQL

大型机中用于转置的DB2SQL,db2,mainframe,Db2,Mainframe,在DB2forLUW上,这将起作用。大型机SQL也将类似。只需使用表名代替表值。。。像钻头 您需要实际提问,而不是发布问题的图片。谢谢,我已经尝试了上述查询,但它与我的DB2V11抛出的SQL代码=-4743不兼容。我们有另一种方法可以做到这一点?它不喜欢哪一位?Row_number函数不接受您是否检查了Db2版本是否支持它?谢谢,这很有帮助 SELECT MAX(CASE WHEN RN = 1 THEN Student_no END) AS Student_no_1 , MA

在DB2forLUW上,这将起作用。大型机SQL也将类似。只需使用表名代替表值。。。像钻头


您需要实际提问,而不是发布问题的图片。谢谢,我已经尝试了上述查询,但它与我的DB2V11抛出的SQL代码=-4743不兼容。我们有另一种方法可以做到这一点?它不喜欢哪一位?Row_number函数不接受您是否检查了Db2版本是否支持它?谢谢,这很有帮助
SELECT
     MAX(CASE WHEN RN = 1 THEN Student_no END) AS Student_no_1
,    MAX(CASE WHEN RN = 1 THEN S_Name     END) AS S_Name_1    
,    MAX(CASE WHEN RN = 1 THEN Marks      END) AS Marks_1
,    MAX(CASE WHEN RN = 2 THEN Student_no END) AS Student_no_2
,    MAX(CASE WHEN RN = 2 THEN S_Name     END) AS S_Name_2
,    MAX(CASE WHEN RN = 2 THEN Marks      END) AS Marks_2
,    MAX(CASE WHEN RN = 3 THEN Student_no END) AS Student_no_3
,    MAX(CASE WHEN RN = 3 THEN S_Name     END) AS S_Name_3
,    MAX(CASE WHEN RN = 3 THEN Marks      END) AS Marks_3
FROM
(   SELECT ROW_NUMBER() OVER(ORDER BY Student_no) AS RN
    ,     Student_no
    ,     S_Name
    ,     Marks
    FROM
        TABLE(VALUES( 2, 'Abc', 89),( 5, 'dfg', 35),( 9, 'qwe', 56))
            AS (Student_no, S_Name, Marks)
)

STUDENT_NO_1 S_NAME_1 MARKS_1 STUDENT_NO_2 S_NAME_2 MARKS_2 STUDENT_NO_3 S_NAME_3 MARKS_3
------------ -------- ------- ------------ -------- ------- ------------ -------- -------
           2 Abc           89            5 dfg           35            9 qwe           56