0

私はこのクエリを使用しています:

select  o.orderno, 
        o.day, 
        a.name, 
        o.description, 
        a.adress, 
        o.quantity, 
        a.orderType, 
        o.status, 
        a.Line, 
        a.price,
        a.serial
  from  orders o
        inner join account a
            on o.orderid=a.orderid
  order by o.day

日替わりで注文しています。日付に基づいて結果を並べ替えた後、並べ替えで考慮される次のフィールドは何ですか?同じ日の場合、どの順序が考慮されますか?

4

2 に答える 2

2

これ以上のソートはありません。オラクルがたまたまそれらを取得した順序で毎日結果を取得しますが、これは決して保証されておらず、同じクエリを複数回実行すると異なる場合があります。それは、通常、制御できない、または可視性さえない、ボンネットの下の多くのことに依存します。現時点では適切な順序で結果が表示される場合がありますが、将来の実行では変更される可能性があります。データの変更は実行計画に影響を与えます。たとえば、結果を表示する順序に影響を与える可能性があります。

特定の順序が必要な場合、またはクエリを実行するたびに一貫した順序で返されるようにする場合は、order by句で指定する必要があります。

これは Tom Kyte がよく強調することです。たとえば、このよく引用される記事では.

于 2013-09-05T10:40:19.190 に答える
0

一意/主キーで並べ替えようとします。この場合、主キーの場合は orderno です。

ただし、クエリにはエラーが含まれています。例: テーブルのエイリアスは SELECT 句で使用されていますが、FROM 句では指定されていません。

于 2013-09-05T09:26:30.587 に答える