使用数字表模拟行号

问题描述

| 我如何在不使用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