Database 板


LINE

※ 引述《wellwind (..)》之铭言: : 各位前辈好 : 小弟目前正在设计一个成绩排名系统 : 排名资料库格式大概如下 : 组别 学号 排名 : 001 00101 1 : 001 00103 2 : 001 00110 3 : 002 00204 1 : 002 00205 2 : 002 00214 3 : 目前是可以用类似下面的语法转成横向显示 : SELECT [组别], : MAX([学号1]) AS [第一名学号], : MAX([学号2]) AS [第二名学号], : MAX([学号3]) AS [第三名学号] : FROM( : SELECT [组别], : CASE [排名] WHEN 1 THEN [学号] END AS [学号1], : CASE [排名] WHEN 2 THEN [学号] END AS [学号2], : CASE [排名] WHEN 3 THEN [学号] END AS [学号3] : FROM score_tbl : ) AS tbl2 : GROUP BY [组别] : 查出来的表会变成这样 : 组别 第一名学号 第二名学号 第三名学号 : 001 00101 00103 00110 : 002 00204 00205 00214 : 不过这样没有版法除里相同排名的问题,例如同时是第一名, : 或第四名跟第三名同分并列第三时,希望可以像这样排 : 组别 第一名学号 第二名学号 第三名学号 : 001 00101 NULL 00110 : 001 00103 NULL NULL : (00101,00103并列第一,所以00110是第三名) : 002 00204 00205 00214 : 002 NULL NULL 00215 : (00214,00215并列第三,所以虽然是取前三名,但实际上有四名) : 遇到这样的要求,目前脑袋是一片空白,想请问各位该如何做这样的查询? : 资料库是SQL Server 2005 试试这样可以吗? SELECT [虚拟编号],[组别], MAX([第一名学号]), MAX([排名1]), MAX([第二名学号]), MAX([排名2]), MAX([第三名学号]), MAX([排名3]) FROM ( SELECT ROW_NUMBER() OVER (PARITION BY [组别],[排名1],[排名2],[排名3] ) AS [虚拟编号], [组别], [第一名学号],[排名1], [第二名学号],[排名2], [第三名学号],[排名3] FROM ( SELECT [组别], CASE [排名] WHEN 1 THEN [学号] END AS [第一名学号], CASE [排名] WHEN 1 THEN [排名] END AS [排名1], CASE [排名] WHEN 2 THEN [学号] END AS [第二名学号], CASE [排名] WHEN 2 THEN [排名] END AS [排名2], CASE [排名] WHEN 3 THEN [学号] END AS [第三名学号] CASE [排名] WHEN 3 THEN [排名] END AS [排名3], FROM score_tbl ) ) T_TMP GROUP BGY [虚拟编号],[组别]; 第二层T_TMP的结果: 虚拟编号 组别 第一名学号 排名1 第二名学号 排名2 第三名学号 排名3 1 1 101 1 2 1 103 1 1 1 110 3 1 2 204 1 1 2 205 2 1 2 214 3 2 2 215 3 最终结果: 虚拟编号 组别 第一名学号 排名1 第二名学号 排名2 第三名学号 排名3 1 1 101 1 110 3 2 1 103 1 1 2 204 1 205 2 214 3 2 2 215 3 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.240.166.244







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP