0

我有一个按字母顺序选择数据的查询。例如:

ID |TITLE
6  |A
35 |AA
3  |B
87 |BB
...

我也想选择一条order id记录(order id它不是数据库中的实际列)。所以结果应该是这样的:

ID |ORDER ID |TITLE
6  |0        |A
35 |1        |AA
3  |2        |B
87 |3        |BB
...

我怎样才能实现这样的目标?我可以在 while 循环中检查每条返回的记录,并且我会在每次迭代时增加一个计数器,但这并不是我真正想要做的,我宁愿把它留在数据库中。

4

2 回答 2

0

像这样的东西:

SELECT * FROM yourtable WHERE id = 3 ORDER BY title

这将返回您的表中的所有字段 id、订单 id、标题),其中 id 列是 3

编辑添加: 来自评论的附加信息 - 在结果集中包括 order_id 但不来自表。为此,您可以添加一个常量并为该列添加别名,如下所示:

SELECT id, '999' AS order_id, title FROM yourtable WHERE id = 3 ORDER BY title

这将返回一个 order_id 列,其值为 999。

于 2013-09-24T14:15:06.457 回答
0

这是RANK其他数据库引擎中的一种功能。

在 SQLite 中,您可以像这样实现:

SELECT ID, (SELECT COUNT() FROM table AS t WHERE Title<table.Title), Title FROM table;

dense_rank 和 sqlite - 可能吗?

编辑:不同的订单号:

SELECT ID, (SELECT COUNT() FROM table AS t WHERE Title<table.Title OR Title=table.Title AND ROWID<table.ROWID), Title FROM table;
于 2013-09-24T14:19:00.087 回答