عبارة ORDER BY

ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime

إرجاع صفوف النتائج بطريقة تم فرزها بالترتيب المحدد من قبل المستخدم. على عكس عبارة SORT BY، تضمن هذه العبارة ترتيبا إجماليا في الإخراج.

بناء الجملة

ORDER BY { { ALL [ sort_direction] [ nulls_sort_oder ] } |
           { expression [ sort_direction ] [ nulls_sort_oder ] } [, ...] }

sort_direction
  [ ASC | DESC ]

nulls_sort_order
  [ NULLS FIRST | NULLS LAST ]

المعلمات

  • جميع

    ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime 12.2 LTS وما فوق

    اختصار يعادل تحديد كافة التعبيرات في SELECT القائمة بالترتيب الذي تحدث به. إذا تم sort_direction تحديدها أو nulls_sort_order تم تحديدها، فإنها تنطبق على كل تعبير.

  • تعبير

    تعبير من أي نوع يستخدم لإنشاء ترتيب يتم فيه إرجاع النتائج.

    إذا كان التعبير قيمة INT حرفية، يتم تفسيره كموضع عمود في قائمة التحديد.

  • sort_direction

    تحديد ترتيب الفرز للترتيب حسب التعبير.

    • ASC: اتجاه الفرز لهذا التعبير تصاعدي.
    • DESC: ترتيب الفرز لهذا التعبير تنازلي.

    إذا لم يتم تحديد اتجاه الفرز بشكل صريح، فسيتم فرز الصفوف تصاعديا بشكل افتراضي.

  • nulls_sort_order

    يحدد اختياريا ما إذا كانت القيم NULL يتم إرجاعها قبل/بعد القيم غير الخالية. إذا null_sort_order لم يتم تحديدها، ففرز NULLs أولا إذا كان ترتيب ASC الفرز وفرز NULLS الأخير إذا كان ترتيب الفرز هو DESC.

    • NULLS FIRST: يتم إرجاع القيم الخالية أولا بغض النظر عن ترتيب الفرز.
    • NULLS LAST: يتم إرجاع القيم الخالية أخيرا بغض النظر عن ترتيب الفرز.

عند تحديد أكثر من تعبير واحد يتم فرزه من اليسار إلى اليمين. يتم فرز كافة الصفوف حسب التعبير الأول. إذا كانت هناك قيم مكررة للتعبير الأول، يتم استخدام التعبير الثاني لحل الترتيب داخل مجموعة التكرارات وما إلى ذلك. الترتيب الناتج ليس حتميا إذا كانت هناك قيم مكررة عبر كل الترتيب حسب التعبيرات.

الأمثلة

> CREATE TABLE person (id INT, name STRING, age INT);
> INSERT INTO person VALUES
    (100, 'John' , 30),
    (200, 'Mary' , NULL),
    (300, 'Mike' , 80),
    (400, 'Jerry', NULL),
    (500, 'Dan'  ,  50);

-- Sort rows by age. By default rows are sorted in ascending manner with NULL FIRST.
> SELECT name, age FROM person ORDER BY age;
 Jerry NULL
  Mary NULL
  John   30
   Dan   50
  Mike   80

-- Sort rows in ascending manner keeping null values to be last.
> SELECT name, age FROM person ORDER BY age NULLS LAST;
  John   30
   Dan   50
  Mike   80
  Mary NULL
 Jerry NULL

-- Sort rows by age in descending manner, which defaults to NULL LAST.
> SELECT name, age FROM person ORDER BY age DESC;
  Mike   80
   Dan   50
  John   30
 Jerry NULL
  Mary NULL

-- Sort rows in ascending manner keeping null values to be first.
> SELECT name, age FROM person ORDER BY age DESC NULLS FIRST;
 Jerry NULL
  Mary NULL
  Mike   80
   Dan   50
  John   30

-- Sort rows based on more than one column with each column having different
-- sort direction.
> SELECT * FROM person ORDER BY name ASC, age DESC;
 500    Dan   50
 400  Jerry NULL
 100   John   30
 200   Mary NULL
 300   Mike   80

-- Sort rows based on all columns in the select list
> SELECT * FROM person ORDER BY ALL ASC;
 100   John   30
 200   Mary NULL
 300   Mike   80
 400  Jerry NULL
 500    Dan   50