按子句排序

適用於:勾選“是”磚的SQL勾選“是”磚運行時

返回在每個分區中按用戶指定順序排序的結果行。當有多個分區時排序通過可能返回部分有序的結果。這和命令子句,保證輸出的總順序。

語法

排序通過表達式sort_directionnulls_sort_oder[,...sort_directionASC|12月nulls_sort_order零位第一個|零位最後的

參數

  • 表達式

    任意類型的表達式,用於建立返回結果的分區局部順序。

    如果表達式是字麵INT值,它將被解釋為選擇列表中的列位置。

  • sort_direction

    指定按表達式排序的排序順序。

    • ASC:該表達式的排序方向為升序。

    • DESC:該表達式的排序順序為降序。

    如果未顯式指定排序方向,則默認行按升序排序。

  • nulls_sort_order

    可選地指定是否在非NULL值之前/之後返回NULL值。如果null_sort_order如果排序順序為ASC如果排序順序為,則為最後排序DESC

    • 零位第一個:不管排序順序如何,先返回NULL值。

    • 零位最後的:無論排序順序如何,最後返回NULL值。

當指定多個表達式時,排序從左到右進行。分區中的所有行都按第一個表達式排序。如果第一個表達式有重複值,則使用第二個表達式解析重複組中的順序,依此類推。如果所有order by表達式中都有重複值,則結果順序不確定。

例子

>創建臨時視圖zip_code的名字年齡作為94588“禪回族”50),94588“丹·李”18),94588“阿尼爾K”27),94588“約翰·V”),94511“大衛·K”42),94511“雅利安人B。”18),94511“拉B。”);——使用' REPARTITION '提示將數據通過' zip_code '分區到檢查' SORT BY '行為。這是用在其餘的——的例子。—在每個分區中按“名稱”升序排序>選擇/*+重分區(zip_code) */的名字年齡zip_code排序通過的名字阿尼爾K27945881894588約翰V94588回族5094588雅利安人B1894511大衛K4294511拉蒂B94511——使用列位置對每個分區中的行進行排序。>選擇/*+重分區(zip_code) */的名字年齡zip_code排序通過1阿尼爾K27945881894588約翰V94588回族5094588雅利安人B1894511大衛K4294511拉蒂B94511——以升序方式對分區內的行進行排序,空值保持在最後。>選擇/*+重分區(zip_code) */年齡的名字zip_code排序通過年齡零位最後的189458827阿尼爾K9458850回族94588約翰V9458818雅利安人B9451142大衛K94511拉蒂B94511——在每個分區中按年齡排序,按降序排列,默認為NULL LAST。>選擇/*+重分區(zip_code) */年齡的名字zip_code排序通過年齡DESC50回族9458827阿尼爾K945881894588約翰V9458842大衛K9451118雅利安人B94511拉蒂B94511——在每個分區中按年齡排序,以降序方式保持空值在前麵。>選擇/*+重分區(zip_code) */年齡的名字zip_code排序通過年齡DESC零位第一個約翰V9458850回族9458827阿尼爾K945881894588拉蒂B9451142大衛K9451118雅利安人B94511——基於多個列對每個分區中的行進行排序,每個列具有——不同的排序方向。>選擇/*+重分區(zip_code) */的名字年齡zip_code排序通過的名字ASC年齡DESC阿尼爾K27945881894588約翰V94588回族5094588雅利安人B1894511大衛K4294511拉蒂B94511