Sql 如何选择表记录的多个数据,但在此记录上应用条件之前?
我想在我的网站管理员可以确认不活跃的用户。为此,我想向管理员显示中继器中的非活动用户。 我希望禁用的用户中继器具有分页功能。 为此,我用SQL编写了以下过程:Sql 如何选择表记录的多个数据,但在此记录上应用条件之前?,sql,sql-server,Sql,Sql Server,我想在我的网站管理员可以确认不活跃的用户。为此,我想向管理员显示中继器中的非活动用户。 我希望禁用的用户中继器具有分页功能。 为此,我用SQL编写了以下过程: ALTER proc [dbo].[SPFetchAllDisActiveUser] ( @StartRowIndex int, @MaxRows int ) as Begin Select * From (select * ,ROW_NUMBER() OVER(ORDER BY [User-ID] asc)
ALTER proc [dbo].[SPFetchAllDisActiveUser]
(
@StartRowIndex int,
@MaxRows int
)
as
Begin
Select * From
(select *
,ROW_NUMBER() OVER(ORDER BY [User-ID] asc) AS RowNum
from [User-Tbl]
) As DisActiveUser
Where RowNum between @StartRowIndex+1 and @MaxRows
and [Gu-Id] is null;
END
我知道(例如,如果@StartRowIndex=0
和@MaxRows=10
),此代码首先从表中选择10条记录,然后检查记录是否有条件[Gu Id]
为null
,返回它。
我希望首先应用条件,然后从中选择一个数字行。但我不知道怎么做。
我感谢任何指导我的人:)要详细介绍我关于移动
[Gu Id]为空的评论,请尝试以下操作:
ALTER PROC [dbo].[SPFetchAllDisActiveUser]
(
@StartRowIndex INT,
@MaxRows INT
)
AS
BEGIN
SELECT * FROM
(
SELECT *, ROW_NUMBER() OVER(ORDER BY [User-ID] ASC) AS RowNum
FROM [User-Tbl]
WHERE [Gu-Id] IS NULL
) AS DisActiveUser
WHERE RowNum BETWEEN @StartRowIndex + 1 AND @MaxRows;
END
“我希望我的网站管理员确认非活动用户。因此,我计划在中继器控件中显示非活动用户的列表。我希望“非活动用户”中继器使用分页。因此,我正在用SQL编写一个存储过程。你能不能将[Gu Id]为NULL
移动到内部选择?我测试它。不工作。选择*自(选择(从[User Tbl]中选择*from[Gu Id]为null),从[User Tbl]中选择ROW_NUMBER()(按[User Id]asc排序)作为RowNum作为DisActiveUser,其中RowNum介于@StartRowIndex+1和@MaxRows之间;我认为@MichaelMcGriff意味着只需在前面加上“where[Gu Id]为null”作为DisActiveUser即可——我觉得这很好