如何使用数字表模拟表的行号而不使用ROW_NUMBER()函数。
样本表: 创建表帐户 ( account_num VARCHAR(25), 主键(account_num) )
数字表有1码行。
答案 0 :(得分:1)
如果你有意思,当它不可用时(又称MySQL),尝试这样的事情:
select @rownum := @rownum + 1 rownum,
t.*
from (select * from table t order by col) t,
(select @rownum := 0) r
它会产生与:
相同的结果select row_number() over (order by col)
from table
order by col
答案 1 :(得分:0)
Numbers表对此没有帮助,因为您无法将表中的值与Numbers表中的数字相关联。但是,如果您询问是否可以在不使用ROW_NUMBER()或变量的情况下创建序列,则可以这样做:
Select A1.Account_Num, Count( A2.Account_Num ) + 1 As Num
From Accounts As A1
Left Join Accounts As A2
On A2.Account_Num < A1.Account_Num
Group By A1.Account_Num