在我的项目中,我允许用户从给定的选项和选项中选择他所选择的数据库。我需要编写考虑所有这些可选数据库的查询。因此,根据我的要求,有没有办法在MSSQL中实现类似于ROW_NUMBER()的通用功能?
答案 0 :(得分:1)
这是您使用分析
的方式Sqlserver
select top 10 row_number() over (order by name)
from sys.objects
的Oracle
select row_number() over (order by object_name)
from all_objects
where rownum<=10
注意我刚刚使用字典表生成一些测试数据 - 您可以使用自己的数据。
如果您想要一个唯一的(非顺序键),您可以使用guid
Sqlserver
select top 10 NEWID()
from sys.objects
的Oracle
select sys_guid()
from all_objects
where rownum<=10
Sqlserver甚至还有NEWSEQUENTIALID()来创建一个顺序guid,它解决了为大量值索引guid的问题。