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