不用游标从表中取出前N条记录的存储过程
来源:互联网 发布:美国东北大学 知乎 编辑:程序博客网 时间:2024/04/30 05:27
因为不技术加Top 后面 加参数,所以不能直接用Top @top 来记取前@top条记录.
所以想了个办法,基本实现原理就是,先根据业务情况定一个较大值,用来先把表中的前N记录读取出来.放在一个临时表中.再从已经取出来的N条记录中筛选出真正要返回的前@top条记录:
详细代码:
-- 查找表的前@top条记录章集合
CREATE PROC dbo.usp_TableName_GetTop
(
@top int -- 要读取的记录数
)
AS
-- 存放第一次读取的前100记录的临时表
CREATE TABLE #TemAllRecord
(
IndexID int IDENTITY (1, 1) NOT NULL, --标识列
RecordID bigint
)
-- 存放真正要读取的前@top条记录
CREATE TABLE #TemTopRecord
(
IndexID int IDENTITY (1, 1) NOT NULL, --标识列
RecordID bigint
)
-- 读出前100条记录写入临时表#TemAllRecord
INSERT INTO
#TemAllRecord(RecordID)
SELECT TOP 100
[RecordID]
FROM
TableName
-- 从临时表#TemAllRecord读出真正需要的前@top条记录
INSERT INTO
#TemTopRecord(RecordID)
SELECT
[RecordID]
FROM
#TemAllRecord
WHERE
[IndexID] <= @top -- 关键点,通过标识列值来选择数量
SELECT
*
FROM
TableName t,#TemTopRecord r
WHERE
t.RecordID = r.RecordID
GO
CREATE PROC dbo.usp_TableName_GetTop
(
@top int -- 要读取的记录数
)
AS
-- 存放第一次读取的前100记录的临时表
CREATE TABLE #TemAllRecord
(
IndexID int IDENTITY (1, 1) NOT NULL, --标识列
RecordID bigint
)
-- 存放真正要读取的前@top条记录
CREATE TABLE #TemTopRecord
(
IndexID int IDENTITY (1, 1) NOT NULL, --标识列
RecordID bigint
)
-- 读出前100条记录写入临时表#TemAllRecord
INSERT INTO
#TemAllRecord(RecordID)
SELECT TOP 100
[RecordID]
FROM
TableName
-- 从临时表#TemAllRecord读出真正需要的前@top条记录
INSERT INTO
#TemTopRecord(RecordID)
SELECT
[RecordID]
FROM
#TemAllRecord
WHERE
[IndexID] <= @top -- 关键点,通过标识列值来选择数量
SELECT
*
FROM
TableName t,#TemTopRecord r
WHERE
t.RecordID = r.RecordID
GO
- 不用游标从表中取出前N条记录的存储过程
- 不用游标从表中取出前N条记录的存储过程
- 表中取出第 n 条到第 m 条的记录及相应的存储过程
- 存储过程中查询前n条记录
- 从表中取出第 n 条到第 m 条的记录:
- 从Table 表中取出第 m 条到第 n 条的记录:(Not In 版本)
- 从Table 表中取出第 m 条到第 n 条的记录:(Not In 版本)
- 从Table 表中取出第 m 条到第 n 条的记录
- 从Table 表中取出第 m 条到第 n 条的记录
- MySql中取出每个分组中的前N条记录
- 从100亿条记录的文本文件中取出重复数最多的前10条
- MS SQLSERVER和ORACLE中取出表中按照某字段排序的前N条记录
- 取出表内分类前N条记录的SQL语句
- 从数据表中取出第n条到第m条的记录的方法
- 从数据表中取出第n条到第m条的记录的方法
- 从数据表中取出第n条到第m条的记录的方法
- 从数据表中取出第n条到第m条的记录的方法
- 从数据表中取出第n条到第m条的记录的方法
- 设计模式--builder--创建型
- 商
- 五十校庆夜观焰火
- apache+php+mysql配置总结
- Google vs. 百度:用百度真比Google多吗?
- 不用游标从表中取出前N条记录的存储过程
- 程序员创业:创业者的十大“必杀计”
- 自主创业的十大误区
- 创业准备
- 谈创业者的基本人格特征
- 2006年12月9日 清华大学王华勇博士在二教304做了讲座,内容为RE.ER嵌入式的研究与推广
- 2006-12-20 周三例会在计算机学院4楼召开.
- 软件公司创业完全手册[一]
- 与afreez一起学习DSP中浮点转定点运算--浮点与定点概述