更新日期:2024年09月11日
Not enough tokens specified in %x directive representation of date string
发生错误的原因是因为指定的日期字符串没有根据 GL_DATE %x 指令形成有效的日期值
的正确数量的标记或分隔符,(所需的格式是基于日、月、年的部分,以及这些部分的顺
序是由指定的语言环境决定的)例如,12/15/98 是基于美国英语语言环境设置
的 GL_DATE %x 指令的有效日期字符串表示形式,但 12/1598 不是有效的日期字符串表
示形式,因为没有足够的分隔符或标记。
要修复此问题,请修改此字符表示形式,使其包含基于语言环境的 GL_DATE %x 指令的
有效格式。
语法
ROW_NUMBER( ) OVER([PARTITION BY col_name1,col_name2,…] ORDER BY col_name1
[asc/desc], col_name2 [asc/desc],…)
功能描述
同rank 的区别就是相同的排序值序号也会依次递增。
例如,两行排序值相同,则序数为1,2。
仅Express 引擎支持。
使用说明和使用约束同RANK( ) OVER( )。
示例
示例1:ROW_NUMBER() OVER(PARTITION BY i order by j desc)
gbase> DROP TABLE IF EXISTS t1;
Query OK, 0 rows affected
gbase> CREATE TABLE t1(i int, j int);
Query OK, 0 rows affected
gbase> INSERT INTO t1 VALUES(2,1),(2,3),(2,3),(2,5),(3,2),(3,2),(3,2),(3,4),(3,1),(3,5);
Query OK, 10 rows affected
Records: 10 Duplicates: 0 Warnings: 0
gbase> SELECT *,RANK() OVER(PARTITION BY i order by j desc) AS rank,DENSE_RANK()
OVER(PARTITION BY i order by j desc) AS dense_rank ,ROW_NUMBER()
OVER(PARTITION BY i order by j desc) AS row_number FROM t1;
+------+------+------+------------+------------+
| i | j | rank | dense_rank | row_number |
+------+------+------+------------+------------+
| 2 | 5 | 1 | 1 | 1 |
| 2 | 3 | 2 | 2 | 2 |
| 2 | 3 | 2 | 2 | 3 |
| 2 | 1 | 4 | 3 | 4 |
| 3 | 5 | 1 | 1 | 1 |
| 3 | 4 | 2 | 2 | 2 |
| 3 | 2 | 3 | 3 | 3 |
| 3 | 2 | 3 | 3 | 4 |
| 3 | 2 | 3 | 3 | 5 |
| 3 | 1 | 6 | 4 | 6 |
GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 582
+------+------+------+------------+------------+
10 rows in set