我需要您的帮助来创建查询。我是软件职业的新手,我正在尝试为 Windows Mobile 应用程序开发 KBC 类型测验游戏。为此,我想尝试从数据库中获取随机记录,如果一条记录出现一次,则该记录将不再出现。我使用此查询"SELECT TOP 1 * FROM Quiz ORDER BY NEWID()"
,但记录重复。
我的表结构如下所示。
ColumnName DataType
Id int
Que varchar(150)
Ans1 varchar(100)
Ans2 varchar(100)
Ans3 varchar(100)
TrueAns varchar(100)
我也尝试创建一个存储过程,如下所示
DECLARE @counter int, @randno int, @uBound int, @lBound int
SELECT @uBound = Max(Id) FROM Quiz
SELECT @lBound = Min(Id) FROM Quiz
SELECT @randno = Round(((@uBound - @lBound) * Rand() + @lBound), 0)
SET @Counter = 0
WHILE @counter = 0
BEGIN
IF EXISTS(SELECT Id FROM Quiz WHERE Id = @randno)
BEGIN
SET NOCOUNT OFF
SELECT * FROM Quiz WHERE Id = @randno
SET @counter = 1
END
ELSE
BEGIN
SELECT @randno = Round(((@uBound - @lBound -1 ) * Rand() + @lBound), 0)
END
END
但我无法获得成功。我的表包含此字段 Que、Ans1、Ans2、Ans3、TrueAns。请帮我解决这个问题。我还想创建一个返回所有记录的网络服务