当前位置: 代码迷 >> Sql Server >> sql2000,返回随机记录,该怎么解决
  详细解决方案

sql2000,返回随机记录,该怎么解决

热度:52   发布时间:2016-04-27 14:10:40.0
sql2000,返回随机记录
在SQL2000中,假设有表t,t有2个字段:ID(标识列),Name,表中有100条记录
问:如何通过查询语句随机返回5条记录,也就说要得到记录中5个不重复的Name

说明:只讨论用sql,因为这只是问题的简化版,不要讨论数组。另外,如果需要也可以增加辅助列。当然如果是通过全表更新随机数据再排序返回也不是我需要的。

麻烦大家了。

------解决方案--------------------
SQL code
SELECT TOP 5 * FROM TORDER BY NEWID()
------解决方案--------------------
SQL code
select  top 5 * from t as a where not exists(select 1 from t where Name=a.Name and ID<a.ID) order by newID()或select top 5 min(ID) as ID,Name from t group by Name order by newID()
------解决方案--------------------
随机取记录
大版写的SQL可能会出现相同Name的最大那一行永远也取不到吧
  相关解决方案