sql server 取數
1.取隨機數
(1).利用newid()隨機取10条记录
select top 10 * from 表 order by newid()
(2).利用rand()隨機取0到9之間的一個數
select cast(rand()*10 as int)
(3).利用rand()隨機取出4個數
DECLARE @counter smallint
SET @counter = 1
WHILE @counter < 5
BEGIN
SELECT RAND() Random_Number
SET NOCOUNT ON
SET @counter = @counter + 1
SET NOCOUNT OFF
END
2.取第N條記錄
(1).取前10名,如果第11,12...與第10名成績相同,也取出來
select top 10 with ties grade,name from result order by grade
(2).取第M到第M+N條的記錄
附:
Access:
SELECT top 10 * FROM 表 ORDER BY Rnd(id)
Rnd(id) 其中的id是自动编号字段,可以利用其他任何数值来完成
比如用姓名字段(UserName)
SELECT top 10 * FROM 表 ORDER BY Rnd(len(UserName))
MySql:
Select * From 表 Order By rand() Limit 10
ORACLE:
select *from (select *from t order by dbms_random.value) where rownum<10