SqLite 生成序号(查询结果加上序号)

发布时间 2023-07-21 19:54:49作者: txgh

SqLite 生成序号(查询结果加上序号)

表结构

字段名称 数据类型 说明(可选)
ID INTEGER 序号
Name TEXT(50) 名称
Amount REAL 数量
CREATE TABLE [tCeShi](
  [ID] INTEGER, 
  [Name] TEXT(50), 
  [Amount] REAL);

表中数据

ID Name Amount
1 商品A 30
2 商品B 20
3 商品C 10

实现按Amount列排序,生成序号列rowno,返回结果

ID Name Amount rowno
3 商品C 10 1
2 商品B 20 2
1 商品A 30 3

方式

1.row_number

select *, ROW_NUMBER() OVER(ORDER BY Amount) AS rowno from tCeShi 

SQLite Release 3.25.0 中增加的窗口函数,可以使用sqlite_version()函数查询SQLite版本

2.count

select *, (select count(*) from tCeShi b where a.Amount >= b.Amount) as rowno
from tCeShi a

参考文档

SQLite Release 3.25.0

https://stackoverflow.com/questions/16847574/how-to-use-row-number-in-sqlite