惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
SegmentFault 最新的问题
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Attack and Defense Labs
Attack and Defense Labs
F
Full Disclosure
Vercel News
Vercel News
N
News | PayPal Newsroom
The GitHub Blog
The GitHub Blog
H
Hacker News: Front Page
H
Heimdal Security Blog
P
Privacy International News Feed
博客园 - 司徒正美
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cisco Blogs
L
Lohrmann on Cybersecurity
D
Docker
Recent Announcements
Recent Announcements
Security Archives - TechRepublic
Security Archives - TechRepublic
人人都是产品经理
人人都是产品经理
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Proofpoint News Feed
T
Tailwind CSS Blog
C
Check Point Blog
博客园 - 叶小钗
Google Online Security Blog
Google Online Security Blog
Martin Fowler
Martin Fowler
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
S
Secure Thoughts
博客园 - Franky
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
P
Palo Alto Networks Blog
Latest news
Latest news
量子位
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
The Cloudflare Blog
Last Week in AI
Last Week in AI
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Cyberwarzone
Cyberwarzone
小众软件
小众软件
Cisco Talos Blog
Cisco Talos Blog
Hacker News: Ask HN
Hacker News: Ask HN
T
Threatpost
T
Tenable Blog
P
Privacy & Cybersecurity Law Blog
WordPress大学
WordPress大学

博客园 - AssionSoft

面向对象开发中的对象构建(但是我们实际开发真的面向对象了吗?) 关于近期在网上看到很多招聘.NET开发的都要求懂ASP.NET MVC了 为什么?这到底是为什么?怎么会这样?天啊!因为什么啊? 面向销售人员和普通白领的个人SAAS服务软件大调查! 求职也是种无奈,早上搞了个求职Mail群发器! 求职真是个痛苦的过程! 白领理财计帐小软件,钱花的不明不白做个软件帮我理财! 性能陷井 北京.NET软件工程师求职,有招人的快来看看 使用电脑休息提醒专家第二版! 做的一个小程序,定时提醒休息。预防颈椎病人人有责! .net软件工程师求职(大连) 图片水印批量附加器(玩一玩,十年少) 换工作求职! 明星、炒作、FANS 最近开发智能网站发现的使用方法! 关于程序员的1号职业病-颈椎病 毕业生找工作,能给个发展机会的请进来看看! 2007年11月8日,我的博客开通的日子!
写了一个用于排序的存储过程,很笨很简单的代码!
AssionSoft · 2007-11-16 · via 博客园 - AssionSoft

代码实现很简单,跟据传入的记录ID,参数 up,down,top,eof就可以实现上移,下移,置顶,置尾的功能了!!

上移:本记录与上条记录的序号字段进行交换,如果为第一条记录提示错误
下移:本记录与下条记录的序号字段进行交换,如果为最后一条记录提示错误
置顶:本记录置为1,如果已为第一条提示否则小于本记录序号的记录全部+1
置尾:本记录置为序号的最大值,如果已是最大值返回提示否则置为最大值,大于它的记录全部-1

注:使用本过程还要注意删除记录的时候同时要把大于被删除记录序号的字段全部-1,这样才能保证记录的连续性!

思路简单,性能低下呵呵!

CREATE PROCEDURE AdminClass_MoveMingzhan(@nID int,@Moves varchar(20),@OutId int OUTPUT)

AS


IF @Moves='up'

     
IF (SELECT Mz_Top FROM Dh_Mingzhan WHERE Mz_ID=@nID)-1=0
         
SET @OutId=10001
     
ELSE
         
BEGIN
         
UPDATE Dh_Mingzhan SET Mz_Top=Mz_Top+1 WHERE Mz_Top=(SELECT Mz_Top FROM Dh_Mingzhan WHERE Mz_ID=@nID)-1
         
UPDATE Dh_Mingzhan SET  Mz_Top=Mz_Top-1 WHERE Mz_ID=@nID
         
SET @OutId=100
         
END
IF @Moves='down'
      

     
IF (SELECT Mz_Top FROM Dh_Mingzhan WHERE Mz_ID=@nID)=(SELECT MAX(Mz_Top) FROM Dh_Mingzhan)
         
SET @OutId=10002
     
ELSE
         
BEGIN
         
UPDATE Dh_Mingzhan SET Mz_Top=Mz_Top-1 WHERE Mz_Top=(SELECT Mz_Top FROM Dh_Mingzhan WHERE Mz_ID=@nID)+1
         
UPDATE Dh_Mingzhan SET Mz_Top=Mz_Top+1 WHERE Mz_ID=@nID
         
SET @OutId=100
         
END
IF @Moves='top'
   
     
IF(SELECT Mz_Top FROM Dh_Mingzhan WHERE Mz_ID=@nID)=1
         
SET @OutId=10003
     
ELSE
         
BEGIN
         
UPDATE Dh_Mingzhan SET Mz_Top=Mz_Top+1 WHERE Mz_Top<(SELECT Mz_Top FROM Dh_Mingzhan WHERE Mz_ID=@nID)
         
UPDATE Dh_Mingzhan SET Mz_Top=1 WHERE Mz_ID=@nID
         
SET @OutId=100
         
END
IF @Moves='eof'

     
IF(SELECT Mz_Top FROM Dh_Mingzhan WHERE Mz_ID=@nID)=(SELECT MAX(Mz_Top) FROM DH_Mingzhan)
         
SET @OutId=10004
     
ELSE
         
BEGIN
         
DECLARE @MaxTop INT
         
SET @MaxTop=(SELECT MAX(Mz_Top) FROM Dh_Mingzhan)
         
UPDATE Dh_Mingzhan SET Mz_Top=Mz_Top-1 WHERE Mz_Top>(SELECT Mz_Top FROM Dh_Mingzhan WHERE Mz_ID=@nID)
         
UPDATE Dh_Mingzhan SET Mz_Top=@MaxTop  WHERE Mz_ID=@nID
         
SET @OutId=100
         
END
GO