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

请帮忙取随机,不重复的数据的问题,谢谢
名称           大类             小类         大图                                               小图

摄影样片 自然主义 公主 2007122214139831.jpg         2007122214133186.jpg
摄影样片 自然主义 公主 2007122214354307.jpg         2007122214337896.jpg
摄影样片 青春主义 新娘 2007122215551912.jpg         2007122215543249.jpg
摄影样片 自然主义 公主 2007122214139831.jpg         2007122214133186.jpg
摄影样片 美丽主义 格格 2007122214354307.jpg         2007122214337896.jpg
摄影样片 青春主义 新郎 2007122215551912.jpg         2007122215543249.jpg


小弟想通过order   by   newid()   随机   根据大类不重复     取出数据,谢谢

------解决方案--------------------
create table tab(名称 varchar(10), 大类 varchar(30), 小类 varchar(30), 大图 varchar(30), 小图 varchar(30))
insert opus select '摄影样片 ', '自然主义 ', '公主 ', '2007122214139831.jpg ', '2007122214133186.jpg '
union all select '摄影样片 ', '自然主义 ', '公主 ', '2007122214354307.jpg ', '2007122214337896.jpg '
union all select '摄影样片 ', '青春主义 ', '新娘 ', '2007122215551912.jpg ', '2007122215543249.jpg '
union all select '摄影样片 ', '自然主义 ', '公主 ', '2007122214139831.jpg ', '2007122214133186.jpg '
union all select '摄影样片 ', '美丽主义 ', '格格 ', '2007122214354307.jpg ', '2007122214337896.jpg '
union all select '摄影样片 ', '青春主义 ', '新郎 ', '2007122215551912.jpg ', '2007122215543249.jpg '


select 名称,大类,max(小类),max(大图),max(小图) from tab group by 名称,大类 order by newid()

------解决方案--------------------
这样??max或者min?


create table #temp
(A varchar(50),
B varchar(50),
C varchar(50),
D varchar(50),
E varchar(50)
)
insert into #temp
select '摄影样片 ', '自然主义 ', '公主 ', '2007122214139831.jpg ', '2007122214133186.jpg ' union all select '摄影样片 ', '自然主义 ', '公主 ', '2007122214354307.jpg ', '2007122214337896.jpg ' union all select '摄影样片 ', '青春主义 ', '新娘 ', '2007122215551912.jpg ', '2007122215543249.jpg ' union all select '摄影样片 ', '自然主义 ', '公主 ', '2007122214139831.jpg ', '2007122214133186.jpg ' union all select '摄影样片 ', '美丽主义 ', '格格 ', '2007122214354307.jpg ', '2007122214337896.jpg ' union all select '摄影样片 ', '青春主义 ', '新郎 ', '2007122215551912.jpg ', '2007122215543249.jpg '
select * from #temp

select max(A),B,max(C),max(D),max(E) from #temp group by B order by newid()

----------------------------

摄影样片 自然主义 公主 2007122214354307.jpg 2007122214337896.jpg
摄影样片 美丽主义 格格 2007122214354307.jpg 2007122214337896.jpg
摄影样片 青春主义 新娘 2007122215551912.jpg 2007122215543249.jpg