如何选择下一行中的列?

时间:2012-07-05 18:21:35

标签: sql database sql-server-2005 stored-procedures

如何通过存储过程在下一行中选择QuestionId?

(客户端:一个问题(QuestionId:3)将显示在屏幕上。当点击下一个按钮时,将显示下一个问题(QuestionId:7)。

请注意; 每次执行后,必须根据RowId逐步连续更改QuestionId(如1-3-7-8 ......)。此外,任何问题都可以删除,因此保持订单非常重要。

+-------+------------+--------------+
| RowId | QuestionId | QuestionText |
+-------+------------+--------------+
| 1     | 1          | aaaa         |
| 2     | 3          | bbbb         |
| 3     | 7          | cccc         |
| 4     | 8          | dddd         |
| 5     | 13         | eeee         |
| 6     | 17         | ffff         |
| 7     | 24         | gggg         |
| 8     | 30         | hhhh         |
+-------+------------+--------------+

1 个答案:

答案 0 :(得分:1)

试试这个:

CREATE PROCEDURE dbo.GetNextQuestion

@QuestionID int

AS 

SET NOCOUNT ON

SELECT TOP 1 RowId, QuestionId, QuestionText
    FROM Questions
    WHERE QuestionID > @QuestionID
    ORDER BY QuestionID

GO

单击“下一步”按钮应将当前问题ID传递给存储过程。