Sql 将记录拆分为多个列,按行编号和分区

Sql 将记录拆分为多个列,按行编号和分区,sql,oracle,Sql,Oracle,我想将结果显示在4列中。 这就是我编写代码的方式 SELECT T.MT_CARD_TYP_ID, ROW_NUMBER() OVER (PARTITION BY T.APP_ID ORDER BY T.DT_CREATE) AS RN FROM T_CS_FAC_CC T WHERE app_id = '8F9A97B0CB5349429C44F15830EDC18F'; 下一步我该怎么做?有专业人士能帮我吗 这就是我的结果 这就是我想要的结果 您可以尝试使用条件加重功能

我想将结果显示在4列中。 这就是我编写代码的方式

SELECT T.MT_CARD_TYP_ID,
       ROW_NUMBER() OVER (PARTITION BY T.APP_ID ORDER BY T.DT_CREATE) AS RN
FROM T_CS_FAC_CC T 
WHERE app_id = '8F9A97B0CB5349429C44F15830EDC18F';
下一步我该怎么做?有专业人士能帮我吗

这就是我的结果

这就是我想要的结果


您可以尝试使用条件加重功能

SELECT app_id,
       MAX(CASE WHEN RN = 1 THEN MT_CARD_TYP_ID END),
       MAX(CASE WHEN RN = 3 THEN MT_CARD_TYP_ID END),
       MAX(CASE WHEN RN = 2 THEN MT_CARD_TYP_ID END),
       MAX(CASE WHEN RN = 4 THEN MT_CARD_TYP_ID END)
FROM (
    SELECT T.MT_CARD_TYP_ID, ROW_NUMBER() OVER(PARTITION BY T.APP_ID ORDER BY T.DT_CREATE) AS RN 
    FROM T_CS_FAC_CC T 
    where app_id='8F9A97B0CB5349429C44F15830EDC18F'
)t1
GROUP BY app_id 

您正在寻找
pivot
我应该在哪里使用行号将pivot添加到上面的查询中?条件加重函数您能给我举个例子吗?我真的不明白你怎么能创建
app\u id
列?