SQL中怎么查询出最后几条记录
SQL中如何查询出最后几条记录这里有一张未知记录且数据容量很大的表,如何能不用top和order by方法的情况下
SQL中如何查询出最后几条记录 这里有一张未知记录且数据容量很大的表, 如何能不用top和order by方法的情况下查询出最后N条记录来。 [最优解释]
引用: 引用: 如果没自增ID的话 使用order by +top的方法会开小会很大 那么有自增ID,不用order by 和top 怎么弄呢? 比如你的id从1到1000万,然后你要找最后10条,直接select * from tb where id between 9999990 and 10000000即可
[其他解释] 引用: 引用: 加上了,如果有索引,直接可以定位,速度快得很。除非你大批量查询 eg一个呗! 看12楼
[其他解释] 引用: 有自增id也得用top,orderby吧 假设有100条数据,id:1-100 删了第92,98条数据,要找最后十条between 90 and 100是找不到的 要不要top要看需求。不一定非要用
[其他解释] 价格ID自增字段 alter table tablename add ID int identity(1,1) go DBCC CHECKIDENT(表的名字) 可以查看到该表当前标识列值(也就是说最后一行数据的ID值) 然后你再 select * from tb where id between @a and 最大值 如果给这个ID自增字段建有索引 那么速度很快了[其他解释] 引用: 引用: 引用: 引用: 如果没自增ID的话 使用order by +top的方法会开小会很大 那么有自增ID,不用order by 和top 怎么弄呢?比如你的id从1到1000万,然后你要找最后10条,直接select * from tb where id betwee…… 如果创建了索引,可以从:
SELECT rowcnt FROM sys.sysindexes WHERE OBJECT_ID=OBJECT_ID('表名') AND indid=1为聚集索引,>1为非聚集索引,具体要看你创建什么索引
找到某个表最大的行数,
[其他解释] 没有自增ID么?
[其他解释] 创建一个有顺序的聚集索引列,然后......
[其他解释] 如果没有自增列,且没有别的聚集索引,则可以用不带排序的select 语句获得最后加入的记录,如果有聚集索引,则无法直接知道最后添加的行是哪几行,因为,SQL里"行的顺序"只有在"以什么排序"时才有意义.
只有一个办法,用Log explorer之类的软件去查询操作记录,看哪几行是最后添加进去的.
[其他解释] 引用: 没有自增ID么? 用的是GUID
[其他解释] 引用: 引用: 没有自增ID么? 用的是GUID GUID本来没啥顺序可言,所以如果你要排序,恐怕要搞个自增ID列。
[其他解释] 如果没自增ID的话 使用order by +top的方法会开小会很大
[其他解释] 建议你给表加一个ID自增字段 这样的话虽然现在加这个字段会花点开销 但是以后处理会很方便了
[其他解释] 有没有关于时间或者是排序的字段了
[其他解释] 引用: 引用: 引用: 没有自增ID么? 用的是GUIDGUID本来没啥顺序可言,所以如果你要排序,恐怕要搞个自增ID列。 那么加上自增ID列后怎么弄呢?
[其他解释] 加上了,如果有索引,直接可以定位,速度快得很。除非你大批量查询
[其他解释]
引用: 如果没自增ID的话 使用order by +top的方法会开小会很大 那么有自增ID,不用order by 和top 怎么弄呢?
[其他解释] 引用: 加上了,如果有索引,直接可以定位,速度快得很。除非你大批量查询 eg一个呗!
[其他解释] 有自增id也得用top,orderby吧
假设有100条数据,id:1-100
删了第92,98条数据,要找最后十条between 90 and 100是找不到的
[其他解释] 引用: 引用: 引用: 如果没自增ID的话 使用order by +top的方法会开小会很大 那么有自增ID,不用order by 和top 怎么弄呢?比如你的id从1到1000万,然后你要找最后10条,直接select * from tb where id between 9999990 and 10000000即可 首先 在未知这表有多少记录的情况下呢。
[其他解释] 引用: 有自增id也得用top,orderby吧 假设有100条数据,id:1-100 删了第92,98条数据,要找最后十条between 90 and 100是找不到的 前提是在不用的情况下哦,亲!
[其他解释] 有沒有日期?能不能根據日期排序?