mysql - 我们能否以通用/通用方式为所有使用 SQL 的数据库实现类似于 ROW_NUMBER() 的功能?

标签 mysql sql database oracle subquery

在我的项目中,我允许用户从给定的选项中选择他选择的数据库,我需要考虑所有这些可选数据库来编写查询。因此,根据我的一个要求,是否有任何方法可以在 MSSQL 中实现类似于 ROW_NUMBER() 的通用功能?

最佳答案

这就是你如何使用分析

数据库服务器

select top 10 row_number() over (order by name)
from sys.objects

甲骨文

select row_number() over (order by object_name)
from all_objects
where rownum<=10

请注意,我刚刚使用字典表生成了一些测试数据 - 您可以使用自己的数据。

如果你想要一个唯一的(非顺序键)你可以使用 guid

数据库服务器

select top 10 NEWID()
from sys.objects

甲骨文

select sys_guid()
from all_objects
where rownum<=10

Sqlserver 甚至有 NEWSEQUENTIALID () 来创建一个顺序 guid,它解决了他们为大量值索引一个 guid 的问题。

关于mysql - 我们能否以通用/通用方式为所有使用 SQL 的数据库实现类似于 ROW_NUMBER() 的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27942230/

相关文章:

mysql - SQL平均总和?

mysql - 如何通过ADO连接远程MySQL而不需要安装ODBC驱动程序?

sql - 回滚整个存储过程

mysql - 更新一个字段以增加直到另一个字段改变

php - 表格中未显示图片

sql - Rails(或者可能是 SQL): Finding and deleting duplicate AR objects

sql - 解密 SQL Server 查询中的密码

sql - 如何在 SQL Server Management Studio 中添加数据库?

database - 替换 Oracle 11g 触发器自动启用它

mysql - 如何在Django中自动切换多个数据库服务器?