Huz*_*ifa 30 sql sql-server row-number
我想定义ROW_NUMBER()
as 的开头3258170
而不是1
.
我正在使用以下SQL查询
SELECT ROW_NUMBER() over(order by (select 3258170)) as 'idd'.
Run Code Online (Sandbox Code Playgroud)
但是,上述查询无效.当我说不工作时,我的意思是它的执行,但它不是从它开始3258170
.有人能帮助我吗?
我想指定行号的原因是我将Rows从一个表插入另一个表.在第一个表中,最后一个记录的行号是3258169
,当我插入新记录时,我希望它们具有行号3258170
.
Gor*_*off 60
只需将值添加到结果row_number()
:
select 3258170 - 1 + row_number() over (order by (select NULL)) as idd
Run Code Online (Sandbox Code Playgroud)
该order by
子句row_number()
指定了用于订单的列.通过在那里指定一个常量,你只是说"一切都有相同的价值用于订购目的".它没有任何东西,没有任何与选择的第一个值有关.
为避免混淆,我用NULL替换了常量值.在SQL Server中,我观察到这会分配一个序列号,而不会对行进行实际排序 - 这是一个观察到的性能优势,但不是我见过的记录,所以我们不能依赖它.
我觉得这更容易
ROW_NUMBER() OVER(ORDER BY Field) - 1 AS FieldAlias (To start from 0)
ROW_NUMBER() OVER(ORDER BY Field) + 3258169 AS FieldAlias (To start from 3258170)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
65805 次 |
最近记录: |