だけの簡単な例では、参照します
SQL> create table unsortedTable(a number, b varchar2(1000));
Table created.
SQL> insert into unsortedTable
2 select level, lpad('X', 1000, 'X')
3 from dual
4 connect by level <=10;
10 rows created.
SQL> delete unsortedTable where a between 4 and 5;
2 rows deleted.
SQL> insert into unsortedTable
2 select -level, lpad('Y', 1000, 'Y')
3 from dual
4 connect by level <=4;
4 rows created.
SQL> select a, substr(b, 1, 5)
2 from unsortedTable;
A SUBSTR(B,1,5)
---------- --------------------
1 XXXXX
2 XXXXX
3 XXXXX
6 XXXXX
7 XXXXX
-1 YYYYY
-2 YYYYY
8 XXXXX
9 XXXXX
10 XXXXX
-3 YYYYY
-4 YYYYY
12 rows selected.
SQL>
、同じ手順の操作を二insert
ステートメントに/*+ append */
ヒントを追加し、WILギブ:
SQL> select a, substr(b, 1, 5)
2 from unsortedTable;
A SUBSTR(B,1,5)
---------- --------------------
1 XXXXX
2 XXXXX
3 XXXXX
6 XXXXX
7 XXXXX
8 XXXXX
9 XXXXX
10 XXXXX
-1 YYYYY
-2 YYYYY
-3 YYYYY
-4 YYYYY
12 rows selected.
これは、APPEND
が信頼できる方法または注文を提供するわけではありません。
それはちょうどそのように表示されます。何が表示の取引。 'Order by'を追加して正しい順序で取得する –
リレーショナルデータベースのテーブルは、ANSI SQLリレーショナルデータベースの概念ごとに順序付けられていない行セットです。このように、最初、最後、上または下はありません。結果セットの順序を保証するには、SQLの 'ORDER BY'節が必要です。 'ORDER BY'がなければ、返される行のシーケンスは未定義です。 –