ALTER PROCEDURE [dbo].[Sp_GetEmailForMailing]
-- Add the parameters for the stored procedure here
@end int=1000
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT top(500) RegistrationID, EmailID from dbo.Candidate_RegistrationData
where status_flag=1 and payment_status=2
and RegistrationID NOT IN (SELECT top(@end) RegistrationID from dbo.Candidate_RegistrationData
where status_flag=1 and payment_status=2) order by RegistrationID
END
这是我的存储过程。在此我想要从 500 行开始,但我从 250 行号开始获取......任何人都知道为什么会发生......谢谢
最佳答案
用作NOT IN
数据源的子查询没有ORDER BY
子句。因此,查询引擎可以按照它认为合适的顺序自由获取 TOP(@end)
行。
关于sql-server-2005 - 无法从 SQL Server 查询中获得正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6235529/