ROW_NUMBER()OVER(),在H2中按顺序排列

Jos*_*tor 4 database row-number h2

我正在尝试使用ROW_NUMBER子句对H2数据库中的表执行查询.这是我的查询:

SELECT ROW_NUMBER() OVER (order by data), name FROM students
Run Code Online (Sandbox Code Playgroud)

但我在H2控制台中出错:

SQL语句中的语法错误"SELECT ROW_NUMBER()OVER(按数据排序[*]),名称FROM学生"; 预期的")";

我注意到它只有在OVER子句为空时才有效,如OVER();

有任何想法吗?

Tho*_*ler 15

H2数据库不支持此功能.你需要使用:

select rownum(), name 
from students 
order by data
Run Code Online (Sandbox Code Playgroud)

  • 实际上,大多数人使用H2作为单元测试数据库,或者作为嵌入式数据库(多平台,如果您的应用程序是用Java编写的话,比MySQL更容易安装). (12认同)
  • 对于使用Java的开发人员来说,使用Java数据库要比使用MySQL简单得多(不需要安装其他软件).它也快得多,特别是内存中的变种.顺便说一句,你也可以在Android上运行H2(甚至认为通常使用SQLite). (10认同)
  • 有很多原因,例如MySQL不是用Java编写的,而且它更复杂,更大. (7认同)