通过 sqlite 根据特定条件获取行号
Posted
技术标签:
【中文标题】通过 sqlite 根据特定条件获取行号【英文标题】:Get Row Number according to a specific condition by sqlite 【发布时间】:2020-12-18 21:28:06 【问题描述】:我有 3 张桌子:
所以我需要一个 SQLite 查询来显示 s_id=7 的行号(这里必须是 3)
我在互联网上搜索太多以找到提示但我没有找到!如果有人可以帮助我,那将是完美的。
【问题讨论】:
请阅读您使用的标签的标签信息,并按照此处所述提供 MRE。 ***.com/tags/sqlite/info 还要描述你尝试了什么以及它是如何失败的。描述你想要什么在这里不被视为问题。 明天行号可能不是3。如果您需要 7 以外的 id,则该字段需要包含在 Section 表中。 生成3 for
s_id`7
的逻辑是什么?请解释您要做什么。
我想知道值 s_id= 7 的行号,所以如果你查看 Section Table 你会看到 s_id=7 是 3ed 行!明天可以是 2 还是 1 都没有关系,我想得到它的值的实际行号
【参考方案1】:
你可以像这样使用窗口函数:
select *
from (
select s_id, row_number() over(order by s_id) as rn
from section
) s
where s_id = 7
或者,如果您的 SQLite 版本不支持窗口函数,您可以使用子查询:
select s_id,
(select count(*) from section s1 where s1.s_id <= s.id) as rn
from section s
where s_id = 7
【讨论】:
以上是关于通过 sqlite 根据特定条件获取行号的主要内容,如果未能解决你的问题,请参考以下文章