【问题标题】:How to create Row Count on a table which already has records in it?如何在已经有记录的表上创建行数?
【发布时间】:2013-06-03 14:26:01
【问题描述】:

我有一个表格,其中已经填充了 5000 行。

我有一个名为 SEQN 的列。

我想用行数填充此列。

我正在使用:

Microsoft SQL Server Management Studio 9.00.4035.00 Microsoft 分析服务客户端工具 2005.090.4035.00 Microsoft 数据访问组件 (MDAC) 6.1.7601.17514 微软 MSXML 3.0 4.0 5.0 6.0 微软 Internet Explorer 9.0.8112.16421 微软 .NET 框架 2.0.50727.5466 操作系统 6.1.7601

非常感谢您的帮助。

SQL新手

【问题讨论】:

  • 您是否对订单有任何偏好,或者从 1 到 5000 的任何分布是否就足够了?
  • 任何发行版都可以...谢谢
  • 重新考虑...按时间戳排序会很好...谢谢
  • 更新了我的答案,包括在日期时间列上进行排序。
  • 感谢 HABO...非常感谢...干杯!

标签: sql-server-2005 rowcount


【解决方案1】:
declare @Foo as Table ( FooId Int Identity, Sequence Int, Timestamp DateTime );
insert into @Foo ( Sequence, Timestamp ) values
  ( 42, '20010203 10:18:05' ), ( 18, '20100508 22:18:05' ), ( NULL, '19960316 19:00:00' );

select * from @Foo order by Sequence;

update Foo
  set Sequence = S
  from ( select Sequence, Row_Number() over ( order by Timestamp ) as S from @Foo ) as Foo;

select * from @Foo order by Sequence;

update Foo
  set Sequence = S
  from ( select Sequence, Row_Number() over ( order by Timestamp desc ) as S from @Foo ) as Foo;

select * from @Foo order by Sequence;

【讨论】:

    猜你喜欢
    • 2020-01-05
    • 1970-01-01
    • 2017-04-20
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    相关资源
    最近更新 更多