【问题标题】:How can I get row's index from a table in SQL Server?如何从 SQL Server 中的表中获取行的索引?
【发布时间】:2013-11-17 09:24:57
【问题描述】:

我有一个Toplist 表,我想获得一个用户的排名。如何获取行的索引?

不幸的是,我正在获取所有行并在 for 循环中检查用户 ID,这对我的应用程序的性能有重大影响。

如何避免这种性能影响?

【问题讨论】:

标签: sql sql-server row rank


【解决方案1】:

你也可以这样做:

SELECT ROW_NUMBER() OVER(ORDER BY (SELECT 1)) AS MyIndex
FROM TopList

【讨论】:

    【解决方案2】:

    ROW_NUMBER() MS SQL

    在您的代码分析函数中使用

    【讨论】:

    • 谢谢@realnumber3012 :)
    【解决方案3】:

    您可以使用 ROW.NUMBER

    这是 MySQL 的示例语法

    SELECT  t1.toplistId, 
            @RankRow := @RankRow+ 1 AS Rank
    FROM    toplist t1
    JOIN    (SELECT @RankRow := 0) r;
    

    这是 MsSQL 的示例语法

    SELECT ROW_NUMBER() OVER(ORDER BY YourColumn) AS Rank,TopListId
    FROM TopList
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-31
      • 2010-11-06
      • 1970-01-01
      • 2022-12-06
      • 1970-01-01
      相关资源
      最近更新 更多