在SQL查询中获取排序位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SQL查询中获取排序位置相关的知识,希望对你有一定的参考价值。

假设我在数据库中有10本书。当我按名称排序时,我希望第一本书的“等级”为1.依此类推,在查询中。

我无法使用自动递增的ID。

[1] A.

[2] B.

[3] C.

等等。

我的场景是硬币并使用Yii2。

    $coins = Coins::find()
        ->select(['id', 'name', 'icon', 'volume_24_hours', 'market_cap', 'price', 'change_24_hours', 'circulating_supply', 'abbreviation'])
        ->where(['is_fiat' => false])
        ->orWhere(['is_fiat' => null])
        ->orderBy(['volume_24_hours' => 'DESC']);
答案

在Oracle,Postgre和MSSQL中,您可以使用某种形式的row_number函数。在mysql中,你可以在变量的帮助下使用emulate it

另一答案

希望这对你有用..(:

SELECT  ROW_NUMBER()OVER(ORDER BY BookName ASC)  AS RowNo,
          BookName
FROM   TableName

以上是关于在SQL查询中获取排序位置的主要内容,如果未能解决你的问题,请参考以下文章

搜索结果后对 SQL 查询进行排序

SQL 查询获取主选择查询上的行排名或位置

在选项卡式应用程序中的何处放置位置代码?

sql语句 嵌套查询 排序

SQL(mysql)排序表并获取其在排序表中的位置的行?

在 CodeIgniter 1.7 中获取原始 SQL 查询