
# ordinal
ordinal函数用于将输入变量按从小到大排序后，返回nth指定位置的值。。
#### 命令格式
```
ordinal(bigint <nth>, <var1>, <var2>[,...])
```
#### 参数说明
表1参数说明 
| 参数  | 是否必选 | 参数类型                             | 说明         |
|:---|:---|:---|:---|
| nth | 是    | BIGINT类型。                        | 指定要返回的位置值。 |
| var | 是    | BIGINT、DOUBLE、DATETIME或STRING类型。 | 待排序的值。     |
   
#### 返回值说明
DOUBLE或DECIMAL类型。
![](https://support.huaweicloud.com/sqlref-spark-dli/public_sys-resources/note_3.0-zh-cn.png)
- 排在第nth位的值，当不存在隐式转换时返回值同输入参数数据类型。
- 当有类型转换时，DOUBLE、BIGINT、STRING之间的转换返回DOUBLE类型；STRING、DATETIME之间的转换返回DATETIME类型。不允许其他的隐式转换。
- NULL为最小值。
 
#### 示例代码
返回2。
```
select ordinal(3, 1, 3, 2, 5, 2, 4, 9);
```
