日期:2014-05-18  浏览次数:20705 次

关于重复记录隐藏的问题!
有记录如下
Select   *   from   tb1

姓名         科目           成绩
张三         语文           99
张三         英语           88
张三         数学           77
李四         语文           89
李四         英语           63
李四         数学           86

希望可以增加一列,用于显示,如下

姓名       姓名2       科目           成绩
张三       张三         语文           99
张三                       英语           88
张三                       数学           77
李四       李四         语文           89
李四                       英语           63
李四                       数学           86

------解决方案--------------------
SELECT 姓名,
姓名2 =
case
when not exists(select 1 from table where 姓名 = a.姓名 and 成绩 > a.成绩)
then 姓名
else ' '
end,
科目,成绩
FROM table AS a
ORDER BY 姓名 DESC,成绩 DESC
------解决方案--------------------
這麼沒有規律的話,借用臨時表吧


Select ID = Identity(Int, 1, 1), * Into #T From 表

Select
姓名,
(Case When Exists (Select 姓名 From #T Where 姓名 = A.姓名 And ID < A.ID) Then ' ' Else 姓名 End) As 姓名2,
科目,
成绩
From
#T A

Drop Table #T