Order_ID Name Age ...
Null LiuZY 22
Null You 65
Null Her 56
.
.
.
其中Order_ID是记录显示的顺序,现在要生成行号,结果如下:
Order_ID Name Ago ...
1 LiuZY 22
2 You 65
3 Her 56
用SQL语句怎么写呀?请高手指导!SQL中可有类似RECNO()这样的函数,有谁有SQL函数的电子文档?
5 个解决方案
#1
为什么不用自增类型字段?
#2
不同的SQL SERVER有不同的函数集,如果你用MS SQL Server, 在它安装后有个很完全的帮助。
关于这里的行号,用一段SQL程序或一个存储过程,其中使用一个游标,然后填写行号是一定可以的。
也可以定义一个自增的字段,初值1、步长1,并按这个字段建立唯一索引,也能达到行号的效果,但如果进行了删除,就会出现空行号。
关于这里的行号,用一段SQL程序或一个存储过程,其中使用一个游标,然后填写行号是一定可以的。
也可以定义一个自增的字段,初值1、步长1,并按这个字段建立唯一索引,也能达到行号的效果,但如果进行了删除,就会出现空行号。
#3
select
(select count(*) from mytable b where b.age < a.age) as Order_ID,
Name, Age
from
mytable a
order by
Age;
试试看。这种方法要求按某个字段排序才可。应该不是过份的要求,假如你需要序号的话。
不过老实说,当你的记录较多时,这个句子对数据库的考验可能比较大。
(select count(*) from mytable b where b.age < a.age) as Order_ID,
Name, Age
from
mytable a
order by
Age;
试试看。这种方法要求按某个字段排序才可。应该不是过份的要求,假如你需要序号的话。
不过老实说,当你的记录较多时,这个句子对数据库的考验可能比较大。
#4
上面的方法是绝对可以实现的,不过时间复杂度太多,但对于你所说的问题,完全可以用自增字段来解决,或者在程序中用自己的字段,但在程序的每一个Insert操作中,都必须找到最大的Id值来写入,才能实现你所想要的效果,综合:最好的方法,自增字段
#5
你如果使用的光标类型为静态的,可以读Select后得到的结果集的Recnon即可实现行号
#1
为什么不用自增类型字段?
#2
不同的SQL SERVER有不同的函数集,如果你用MS SQL Server, 在它安装后有个很完全的帮助。
关于这里的行号,用一段SQL程序或一个存储过程,其中使用一个游标,然后填写行号是一定可以的。
也可以定义一个自增的字段,初值1、步长1,并按这个字段建立唯一索引,也能达到行号的效果,但如果进行了删除,就会出现空行号。
关于这里的行号,用一段SQL程序或一个存储过程,其中使用一个游标,然后填写行号是一定可以的。
也可以定义一个自增的字段,初值1、步长1,并按这个字段建立唯一索引,也能达到行号的效果,但如果进行了删除,就会出现空行号。
#3
select
(select count(*) from mytable b where b.age < a.age) as Order_ID,
Name, Age
from
mytable a
order by
Age;
试试看。这种方法要求按某个字段排序才可。应该不是过份的要求,假如你需要序号的话。
不过老实说,当你的记录较多时,这个句子对数据库的考验可能比较大。
(select count(*) from mytable b where b.age < a.age) as Order_ID,
Name, Age
from
mytable a
order by
Age;
试试看。这种方法要求按某个字段排序才可。应该不是过份的要求,假如你需要序号的话。
不过老实说,当你的记录较多时,这个句子对数据库的考验可能比较大。
#4
上面的方法是绝对可以实现的,不过时间复杂度太多,但对于你所说的问题,完全可以用自增字段来解决,或者在程序中用自己的字段,但在程序的每一个Insert操作中,都必须找到最大的Id值来写入,才能实现你所想要的效果,综合:最好的方法,自增字段
#5
你如果使用的光标类型为静态的,可以读Select后得到的结果集的Recnon即可实现行号