oracle 动态sql列转行_oracle行转列(动态行转不定列)
---------------------------------------------------------------行轉列的存儲過程
CREATE OR REPLACE PROCEDURE P_TEST IS
V_SQL VARCHAR2(2000);
CURSOR CURSOR_1 IS SELECT DISTINCT T.XCLCK FROM TEST T ORDER BY XCLCK;
BEGIN
V_SQL := 'SELECT WL,XYSL,XYCK';
FOR V_XCLCK IN CURSOR_1
LOOP
V_SQL := V_SQL || ',' || 'SUM(DECODE(XCLCK,''' || V_XCLCK.XCLCK ||
''',XCLCKSL,0)) AS ' || V_XCLCK.XCLCK;
END LOOP;
V_SQL := V_SQL || ' FROM TEST GROUP BY WL,XYSL,XYCK ORDER BY WL,XYSL,XYCK';
--DBMS_OUTPUT.PUT_LINE(V_SQL);
V_SQL := 'CREATE OR REPLACE VIEW RESULT? AS '||? V_SQL;
--DBMS_OUTPUT.PUT_LINE(V_SQL);
EXECUTE IMMEDIATE V_SQL;
END;
----------------------------------------------------------------結果
----------------執(zhí)行存儲過程,生成視圖
BEGIN
P_TEST;
END;
總結
以上是生活随笔為你收集整理的oracle 动态sql列转行_oracle行转列(动态行转不定列)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker 保存 环境持久化_18、d
- 下一篇: 24个笔画顺序表_400个生字笔顺表,孩