问题描述
|
我如何在不使用ROW_NUMBER()函数的情况下使用数字表模拟表的行号。
样本表:
创建表帐户
(
account_num VARCHAR(25),
主键(account_num)
)
数字表有100万行。
解决方法
如果您的意思是,当它不可用(又名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
, 数字表在这里无济于事,因为您无法将表中的值与数字表中的数字相关联。但是,如果您询问是否可以在不使用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