日期:2014-05-18  浏览次数:20437 次

如何得到指定行的ID值
我只想得到比如   第300行的ID字段值   怎么得到。

我是说除了SELECT   套SELECT     TOP   之外的办法

谢谢各位大大


------解决方案--------------------
select *,identity(int,1,1) as aa
into #aa
from table

select id
from #aa
where aa=300

就可以了
------解决方案--------------------
LS的方法不错,想不到有比他更好的了
------解决方案--------------------
路过,正解!
------解决方案--------------------
考虑到你说的情况 了,identity(int,1,1) 等于 新加了一个由1 开始 自增的列,但是 必须要有 into 子句,上面的就可以了,选第几行 条件等于 几就可以了
------解决方案--------------------

select * from tb a where (select count(*) from tb where id <=a.id)=300
这种情况需要id唯一.id有顺序排列,比如id为1,5,6..1,6,5这种就不成

------解决方案--------------------

select top 1 id from(
select top 300 * from tb
order by id ) aa
order by id desc

------解决方案--------------------
用SET ROWCOUNT 这个数据量大时效率比较高的
------解决方案--------------------
一个思路,用临时表处理,为表加上一个连接的自增列,然后就好处理了.
这样效率高些.