select top 1 * from tb order by newid()然后根据查询到的数据判断是否得奖了.
最好是抽取很多次都抽不到奖?假设有个字段,标记改记录是否得奖,假设为1得奖.那么想多次都抽不到奖,加加上条件去选.例如: select top 1 * from tb where flag <> 1 order by newid那么,怎么也抽不到奖. 运行了多次后,再运行:select top 1 * from tb order by newid这样就可能抽到奖
2楼的newid -- > newid()
order by newid()是随机选取。。
学习了,那在Access中,怎么随机抽取100条数据呢?查询怎么写?
可以這樣用 CREATE TABLE #T(id int not NULL IDENTITY,code NVARCHAR(50),zhuangtai bit) INSERT INTO #T SELECT '1等獎',0 INSERT INTO #T SELECT '2等獎',0 INSERT INTO #T SELECT '3等獎',0--假如:100,機率3%(表有3個記錄) UPDATE #T SET zhuangtai=1 WHERE ID= ABS(CHECKSUM(NEWID()))%100
select top 1 * from tb where flag <> 1 order by newid那么,怎么也抽不到奖.
运行了多次后,再运行:select top 1 * from tb order by newid这样就可能抽到奖
CREATE TABLE #T(id int not NULL IDENTITY,code NVARCHAR(50),zhuangtai bit)
INSERT INTO #T SELECT '1等獎',0
INSERT INTO #T SELECT '2等獎',0
INSERT INTO #T SELECT '3等獎',0--假如:100,機率3%(表有3個記錄)
UPDATE #T
SET zhuangtai=1
WHERE ID= ABS(CHECKSUM(NEWID()))%100