不用游标从表中取出前条记录的存储过程物业

文章来源:丹阳文学网  |  2021-10-29

因为不技术加Top 后面 加参数,所以不能直接用Top @top 来记取前@top条记录.

所以想了个办法,基本实现原理就是,先根据业务情况定一个较大值,用来先把表中的前N记录读取出来.放在一个临时表中.再从已经取出来的N条记录中筛选出真正要返回的前@top条记录:

详细代码:

--查找表的前@top条记录章集合

p_TableName_GetTop

(

@topint--要读取的记录数

阿里与民生银行达成合作:涉及直销银行等业务 )

AS

--存放第一次读取的前100记录的临时表

CREATETABLE#TemAllRecord

(

IndexIDintIDENTITY(1,1)NOTNULL,--标识列

RecordIDbigint

)

--存放真正要读取的前@top条记录

CREATETABLE#TemTopRecord

(

IndexIDintIDENTITY(1,1)NOTNULL,--标识列

RecordIDbigint

)

--读出前100条记录写入临时表#TemAllRecord

INSERTINTO

#TemAllRecord(RecordID)

SELECTTOP100

[RecordID]

FROM

TableName

--从临时表#TemAllRecord读出真正需要的前@top条记录

INSERTINTO

#TemTopRecord(RecordID)

SELECT

[RecordID]

FROM

#TemAllRecord

WHERE

[IndexID]=@top--关键点,通过标识列值来选择数量

SELECT

*

FROM

TableNamet,#TemTopRecordr

WHERE

cordID=cordID

GO

查看本文来源

骨关节炎吃什么药治疗效果好
成都内分泌性不孕
必奇蒙脱石散怎么吃好
友情链接