【问题标题】:How to get the row index in SQLite3?如何获取 SQLite3 中的行索引?
【发布时间】:2020-09-04 13:28:27
【问题描述】:

我创建了一个表,其中有一列注册号作为主键。我使用按主键排序的row_number() 创建了row_id。

如何搜索注册号并获取 row_id 以及该行的其他信息?

【问题讨论】:

  • OP提到我已经使用按主键排序的row_number()创建了row_id所以问题与建议的重复链接不一样“如何在 sqlite 中使用 ROW_NUMBER".

标签: sql sqlite window-functions


【解决方案1】:

如果您创建了row_id 列,例如:

ROW_NUMBER() OVER (ORDER BY registration_number)

然后使用CTE:

WITH cte AS (
  SELECT *, ROW_NUMBER() OVER (ORDER BY registration_number) row_id
  FROM tablename
)
SELECT * 
FROM cte
WHERE registration_number = ?

?替换为您要搜索的注册号。

获取row_id 的另一种方法是使用相关子查询:

SELECT t.*,
  (SELECT COUNT(*) FROM tablename WHERE registration_number <= t.registration_number) AS row_id 
FROM tablename AS t
WHERE t.registration_number = ?

【讨论】:

  • 非常感谢!这对我有很大帮助。我几乎搜索了所有内容,但无法理解 CTE。那效果很好。 :)
猜你喜欢
  • 2014-06-06
  • 1970-01-01
  • 2017-10-12
  • 2012-11-03
  • 1970-01-01
  • 2010-12-19
  • 1970-01-01
  • 2015-04-23
  • 1970-01-01
相关资源
最近更新 更多