在SQL Server中如何输出行号

来源:互联网 发布:兰州seo 编辑:程序博客网 时间:2024/05/19 04:55

原文地址:http://www.dingos.cn/index.php?topic=1688.0

 

Oracle有rownum用于访问表中行号。那么在SQL Server中是否有等效的呢?或者在SQL Server中如何输出行号?
-----------------------------------

在SQL Server中没有直接等效于Oracle的rownum
-----------------------------------

严格说来,在关系数据库中,表中的行是没有序的并且行号没有正真的意义。如果需要这个功能,可以有如下三种考虑:

  • 在表中添加一个自动增长列。
  • 使用下列查询为每一行产生一个行号。下列查询为pubs数据库每一行产生一个行号。为这个查询工作,这个表必须哟唯一约束。
    -----------------------------------------------
    SELECT (SELECT COUNT(i.au_id)
    FROM pubs..authors i
    WHERE i.au_id >= o.au_id ) AS RowID,
    au_fname + ' ' + au_lname AS 'Author name'
    FROM pubs..authors o
    ORDER BY RowID
    -----------------------------------------
  • 使用临时表实现,将整个结果集存储在一个临时表中,跟有一个由IDENTITY()函数参数的行号。创建临时表代价是比较昂贵的,尤其是对比较大的表进行操作。
原创粉丝点击