1

我想在 sql select 语句中获取行号,但它不应该是特定于数据库的查询,就像我不能使用 oracle 的行号一样。请让我知道如何实现这一点。
我的表结构如下 pid,emplid,desc 作为列,pid 和 emplid 组合将用作主键。所以建议在这个用例中查询。

谢谢,
希亚姆

4

2 回答 2

1

许多主要的 RDBMS 都支持该row_number()功能,但我不相信它在 MySQL 中,所以它真的取决于您希望它有多不可知。如果您希望它真正不可知,最好将其移出数据库层。

编辑:valex 计算 rownum 的方法可能比将其移出数据库更好的选择

于 2013-05-17T08:37:09.170 回答
0

要做到这一点,你的表必须有一个独特的Id- 像字段 - 任何可以区分一行和另一行的东西。如果是那么:

select t1.*,
(select count(id) from t as t2 where t2.id<=t1.id) as row_number

from t as t1 order by Id

UPD:如果您有 2 列要下订单,那么它将如下所示:

select t1.*,
(select count(id) from t as t2 where t2.id1<=t1.id1 and t2.id2<=t1.id2) 
as row_number

from t as t1 order by Id1,id2
于 2013-05-17T08:38:58.427 回答