【问题标题】:Sorting a collection对集合进行排序
【发布时间】:2015-12-29 10:33:54
【问题描述】:

我想根据 DESC 日期顺序对集合类型进行排序并填充新集合。我该怎么办?

TYPE xyz IS RECORD(   

Item      aa.Item%Type,   
t_date       date,
Code     aa.Code%Type,
Qty       aa.Units%Type,
Cost      aa.Total_Cost%TYPE );


TYPE uxyz IS TABLE OF xyz;
l_uxyz    uxyz;

【问题讨论】:

    标签: sorting collections plsql record


    【解决方案1】:

    只是为了说明一个非常小的例子,我在下面提到了一个 sn-p。希望对您有所帮助。

    -- SQL Table type creation
    CREATE OR REPLACE TYPE NUMBER_NTT
    IS
      TABLE OF NUMBER;
    
    -- Anonomous block to illustrate your question  
      SET serveroutput ON;
      DECLARE
      TYPE lv_num_tab
    IS
      TABLE OF NUMBER;
      lv_num1 lv_num_tab:=lv_num_tab();
      lv_num2 NUMBER_NTT;
    BEGIN
      lv_num2:=NUMBER_NTT(1,3,4,7,2,6);
      SELECT COLUMN_VALUE BULK COLLECT
      INTO lv_num1
      FROM TABLE(lv_num2)
      ORDER BY 1 DESC;
      dbms_output.put_line('With desc order');
      FOR i IN lv_num1.FIRST..lv_num1.LAST
      LOOP
        dbms_output.put_line(lv_num1(i));
      END LOOP;
      SELECT COLUMN_VALUE BULK COLLECT INTO lv_num1 FROM TABLE(lv_num2);
      dbms_output.put_line('Without desc order');
      FOR i IN lv_num1.FIRST..lv_num1.LAST
      LOOP
        dbms_output.put_line(lv_num1(i));
      END LOOP;
    END;
    
    -------------------------------------OUTPUT-----------------------------------------
    
    anonymous block completed
    With desc order
    7
    6
    4
    3
    2
    1
    Without desc order
    1
    3
    4
    7
    2
    6
    
    ------------------------------------------------------------------------------------
    

    【讨论】:

    • 这对复杂的记录类型有用吗?
    猜你喜欢
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 2011-04-04
    • 2013-02-25
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多