Sql 使用数字表模拟行数

Sql 使用数字表模拟行数,sql,Sql,如何在不使用row_number()函数的情况下,使用数字表模拟表的行号 样本表: 创建表帐户 ( 账户编号VARCHAR(25), 主键(帐户编号) ) 数字表有1mil行。如果您的意思是,当它不可用时(也称为MySQL),请尝试以下操作: select @rownum := @rownum + 1 rownum, t.* from (select * from table t order by col) t, (select @rownum := 0) r 它将产生

如何在不使用row_number()函数的情况下,使用数字表模拟表的行号

样本表: 创建表帐户 ( 账户编号VARCHAR(25), 主键(帐户编号) )


数字表有1mil行。

如果您的意思是,当它不可用时(也称为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

如果您的意思是,当它不可用时(也称为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
选择A1.Account\u Num,Count(A2.Account\u Num)+1作为Num
来自帐户A1
左键作为A2连接帐户
在A2.Account\u Num
数字表对您没有帮助,因为您无法将表中的值与数字表中的数字相关联。但是,如果您询问是否可以在不使用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
选择A1.Account\u Num,Count(A2.Account\u Num)+1作为Num
来自帐户A1
左键作为A2连接帐户
在A2.Account\u Num
行号()对你不好吗?不可用?怎么
行号()
对您不好?不可用?可以使用数字表吗?可以使用数字表吗?