Array sort by struct key(按结构体键排序数组(Array sort by struct key))¶
Supported in: Batch, Streaming
Returns a sorted array of the given input array of structs sorted by the values of the given struct keys.
Expression categories: Array
Declared arguments¶
- Input array: Input array of structs to be sorted.
Expression\> - Sort keys: Struct keys to sort array by in order of sort priority. Sort nested struct elements with multiple entries like ['author', 'age'].
List\>>
Output type: Array\
Examples¶
Example 1: Base case¶
Argument values:
- Input array: [ {
age: 20,
}, {
age: 10,
}, {
age: 30,
} ] - Sort keys: [(age,
ASCENDING)]
Output: [ {
age: 10,
}, {
age: 20,
}, {
age: 30,
} ]
Example 2: Base case¶
Argument values:
- Input array: [ {
age: 20,
}, {
age: 10,
}, {
age: 30,
} ] - Sort keys: [(age,
DESCENDING)]
Output: [ {
age: 30,
}, {
age: 20,
}, {
age: 10,
} ]
Example 3: Base case¶
Argument values:
- Input array: [ {
age: 20,
height: 77,
}, {
age: 20,
height... - Sort keys: [(age,
ASCENDING), (height,DESCENDING)]
Output: [ {
age: 10,
height: 80,
}, {
age: 10,
height...
Example 4: Base case¶
Argument values:
- Input array: [ {
age: 20,
height: 77,
}, {
age: 20,
height... - Sort keys: [(age,
ASCENDING), (height,ASCENDING)]
Output: [ {
age: 10,
height: 65,
}, {
age: 10,
height...
Example 5: Base case¶
Argument values:
- Input array: [ {
subStructKey: {
age: 20,
},
}, {
subStructKey: {
age: 10,
},
}, {
subStructKey: {
age: 30,
},
} ] - Sort keys: [(subStructKey.age,
ASCENDING)]
Output: [ {
subStructKey: {
age: 10,
},
}, {
subStructKey: {
age: 20,
},
}, {
subStructKey: {
age: 30,
},
} ]
Example 6: Null case¶
Argument values:
- Input array: [ {
age: null,
height: 77,
}, {
age: null,
**... - Sort keys: [(age,
ASCENDING)]
Output: [ {
age: null,
height: 77,
}, {
age: null,
**...
Example 7: Null case¶
Argument values:
- Input array: [ {
age: 10,
}, {
age: null,
}, {
age: 30,
} ] - Sort keys: [(age,
ASCENDING)]
Output: [ {
age: null,
}, {
age: 10,
}, {
age: 30,
} ]
Example 8: Null case¶
Argument values:
- Input array: [ {
age: 10,
}, {
age: null,
}, {
age: 30,
} ] - Sort keys: [(age,
DESCENDING)]
Output: [ {
age: 30,
}, {
age: 10,
}, {
age: null,
} ]
中文翻译¶
按结构体键排序数组(Array sort by struct key)¶
支持:批处理(Batch)、流处理(Streaming)
根据指定结构体键(struct keys)的值,对输入的结构体数组进行排序,并返回排序后的数组。
表达式类别: 数组(Array)
声明的参数¶
- 输入数组(Input array): 待排序的结构体数组。
表达式\> - 排序键(Sort keys): 按排序优先级顺序,用于对数组进行排序的结构体键。如需对嵌套结构体元素排序,可使用多个条目,例如 ['author', 'age']。
列表\<元组\>>
输出类型: Array\
示例¶
示例 1:基础情况¶
参数值:
- 输入数组: [ {
age: 20,
}, {
age: 10,
}, {
age: 30,
} ] - 排序键: [(age,
ASCENDING)]
输出: [ {
age: 10,
}, {
age: 20,
}, {
age: 30,
} ]
示例 2:基础情况¶
参数值:
- 输入数组: [ {
age: 20,
}, {
age: 10,
}, {
age: 30,
} ] - 排序键: [(age,
DESCENDING)]
输出: [ {
age: 30,
}, {
age: 20,
}, {
age: 10,
} ]
示例 3:基础情况¶
参数值:
- 输入数组: [ {
age: 20,
height: 77,
}, {
age: 20,
height... - 排序键: [(age,
ASCENDING), (height,DESCENDING)]
输出: [ {
age: 10,
height: 80,
}, {
age: 10,
height...
示例 4:基础情况¶
参数值:
- 输入数组: [ {
age: 20,
height: 77,
}, {
age: 20,
height... - 排序键: [(age,
ASCENDING), (height,ASCENDING)]
输出: [ {
age: 10,
height: 65,
}, {
age: 10,
height...
示例 5:基础情况¶
参数值:
- 输入数组: [ {
subStructKey: {
age: 20,
},
}, {
subStructKey: {
age: 10,
},
}, {
subStructKey: {
age: 30,
},
} ] - 排序键: [(subStructKey.age,
ASCENDING)]
输出: [ {
subStructKey: {
age: 10,
},
}, {
subStructKey: {
age: 20,
},
}, {
subStructKey: {
age: 30,
},
} ]
示例 6:空值情况¶
参数值:
- 输入数组: [ {
age: null,
height: 77,
}, {
age: null,
**... - 排序键: [(age,
ASCENDING)]
输出: [ {
age: null,
height: 77,
}, {
age: null,
**...
示例 7:空值情况¶
参数值:
- 输入数组: [ {
age: 10,
}, {
age: null,
}, {
age: 30,
} ] - 排序键: [(age,
ASCENDING)]
输出: [ {
age: null,
}, {
age: 10,
}, {
age: 30,
} ]
示例 8:空值情况¶
参数值:
- 输入数组: [ {
age: 10,
}, {
age: null,
}, {
age: 30,
} ] - 排序键: [(age,
DESCENDING)]
输出: [ {
age: 30,
}, {
age: 10,
}, {
age: null,
} ]