skip to main | skip to sidebar

天天的家

普通平凡的人,网管,编程,司机,生活中的各种角色

星期二, 三月 13, 2007

按总分排名的SQL语句

有兄弟问我SQL语法,N久没搞这东西,翻了一下以前的资料,呵呵,还真的找到一些灵感,想想以前编程的日子真是一种快乐,现在是什么?也许是痛并快乐者吧.我爱生活:
第一种方法:
select a.name,a.total,(select count(*) from tablename b where b.name=a.nameand b.total>a.total) as mcfrom tablename aorder by a.total
第二种方法:
SELECT ID,IDENTITY(int, 1,1) as 名次into #tmpfrom 表 order by 总分update 表 set 名次=b.名次from 表 a,#tmp bwhere a.id=b.idDROP TABLE #tmp
第三种方法:
with aqr do begin //建立临时表 SQL.Clear; SQL.Add('create table tmp (id smallint,总分 smallint,名次 counter);'); ExecSQL; //排名 SQL.Clear; SQL.Add('insert into tmp (id,总分) SELECT ID,总分 from 成绩表 order by 总分 desc;'); ExecSQL; //更改表结构 SQL.Clear; SQL.Add('ALTER TABLE tmp ALTER COLUMN 名次 integer;'); ExecSQL; //解决重复排名 SQL.Clear; SQL.Add('insert into tmp (id,总分,名次) select 0 as id,总分,mc as 名次 from (select 总分,min(名次) as mmc from tmp group by 总分);'); ExecSQL; //更新 SQL.Clear; SQL.Add('update 成绩表,tmp set 成绩表.名次=tmp.名次 where 成绩表.总分=tmp.总分 and tmp.id=0;'); ExecSQL; //删除临时表 SQL.Clear; SQL.Add('DROP TABLE tmp;'); ExecSQL; end;
发帖者 天天 时间: 10:16 上午
通过电子邮件发送BlogThis!分享到 X共享给 Facebook分享到Pinterest

没有评论:

发表评论

较新的博文 较早的博文 主页
订阅: 博文评论 (Atom)

Links

  • 航仔
  • 依依
  • 灵隐
  • Google News

博客归档

  • ►  2024 (1)
    • ►  二月 (1)
  • ►  2009 (1)
    • ►  二月 (1)
  • ►  2008 (26)
    • ►  十月 (10)
    • ►  九月 (4)
    • ►  六月 (1)
    • ►  五月 (9)
    • ►  三月 (2)
  • ▼  2007 (76)
    • ►  十二月 (7)
    • ►  十一月 (10)
    • ►  四月 (1)
    • ▼  三月 (58)
      • 凤凰之美
      • 欲加之罪
      • 家乡
      • 植树节
      • 业务培训
      • 我喜欢的歌
      • CCNA考试记
      • ntldr is missing问题如何解决?
      • ISDN PRI说明
      • windows2003 IIS下RMVB不能下载和播放的问题
      • Cisco PIX525 配置备忘
      • xManager与防火墙的问题解决过程
      • pix515e配置
      • 在防火墙环境下DNS的安装与设置
      • 应用于端口的与应用VLAN的ACL
      • 程唤醒源代码
      • veritas netbackup出问题了?
      • 关闭WINXP的高级文字服务为win2000
      • sunos 下的oracle自动备份
      • 我最喜欢的学校Berkeley
      • linux下用CP的方法做备份
      • Platform limit of 64 STP 问题解决
      • Cisco ACL Template - Border Ro
      • ACL允许DHCP
      • 最常用的端口
      • windows改变机器本身的路由
      • 封电骡和BT都可以的写法
      • 封emule还不行
      • 在路由器封BT方法大全
      • 用acl来防止一般的网络发包病毒
      • 在登陆脚本文件中来给用户安装打印机
      • 如何在WEB服务器中禁用不必要的组件.
      • Delete a Service
      • DNS server安装笔记
      • IIS状态代码
      • Bt、MSN在内网不能下的问题(UPnP规范问题)?
      • 使用路由器作流量检测的几个手段
      • show ip nbar protocol-discover
      • win2000下不能删除文件问题解决
      • ASP如何获取真实IP地址
      • 制作格式化硬盘网页
      • SQLServer2000发生错误1069
      • 停止WIN2K的中NTP服务
      • 用储存过程把数据导出到EXCEL表中
      • 交换机做DHCP不能正常获得IP了?
      • freeBSD 5.3 下ssh不能正常登录
      • freeBSD 5.3 下ssh不能正常登录
      • 保留邮件前提下为邮箱改名
      • 3550限速(IP和端口)
      • IP PHONE及路由器上的CallManage
      • 按总分排名的SQL语句
      • FreeBSD下如何安装nvidia显卡驱程
      • FreeBSD+win2k机器安装完成了,现在分步骤写出过程
      • DNS导致不能正常上网的问题
      • DNS MX错误记录导致不能正常上网解决
      • 双ISP解决方案
      • 平安公司熏蒸系统TODOLIST
      • 植树�?/P>昨天是植树节,一大早,单位的同事就赶去了南太湖大桥,去了之后才发现比较晕。一大群人都来...
 
Powered By Blogger