sql - 这个 SELECT 语句有什么作用?

标签 sql sql-server database select

我正在查看一些代码,发现了一些我非常不熟悉的东西;谷歌并没有证明结果卓有成效,所以我想知道是否有人可以解释以下代码的作用?它不涉及我的任何表或数据库,所以我假设它是通用代码,我不需要提供我的数据库布局?非常感谢。

代码:

SELECT  ROW_NUMBER() OVER (ORDER BY Object_ID) AS weeks 
                FROM    SYS.OBJECTS 

最佳答案

它将选择从 1 到 N 的数字,其中 N 是 sys.objects 中的行数。它不能保证排序顺序。

假设 sys.objects 中至少有 52 行,此代码可能旨在提供所有周数(天啊!)。

但是,此代码将返回超过 52 行,并且不保证结果是有序的。我建议你摆脱这种肮脏。

编辑:作为替代方案,我会选择创建下表:CREATE TABLE Weeks (WeekNumber TINYINT NOT NULL PrimaryKey) 并适本地填充它。这将比从 sys.objects 中选择更快,因为此自定义表将更小且排序正确。

关于sql - 这个 SELECT 语句有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9750887/

相关文章:

sql - 错误 : function date_trunc(timestamp without time zone) does not exist

python - sqlite3.操作错误: database is locked - non-threaded application

mysql - 如何插入其他表中的值?

php - (php)导入.sql并添加列(如果表存在)或创建新表

php - 更新mysql中每一行的表列

php - 多个数据库或内容较多的表

sql - 如何向数据库插入空值?

sql-server - RedGate 数据比较可以使用连接吗?

sql-server - mssql特殊字符编码问题

sql - 如何在 SQL 数据库中查询大量没有任何共同标准的结果?