在SQL查询中获取排序位置

问题描述 投票:0回答:2

假设我在数据库中有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']);
mysql sql yii yii2 yii2-advanced-app
2个回答
0
投票

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


0
投票

希望这对你有用..(:

SELECT  ROW_NUMBER()OVER(ORDER BY BookName ASC)  AS RowNo,
          BookName
FROM   TableName
© www.soinside.com 2019 - 2024. All rights reserved.