sql-server-2005 - 无法从 SQL Server 查询中获得正确的输出

标签 sql-server-2005

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/

相关文章:

sql-server - sql双多列键

sql-server-2005 - 每秒创建的工作文件数量激增,失控

sql - 排除匹配子查询的记录

sql - MSSQL - 选择在两列中找到的不同产品

sql-server-2005 - 是什么导致从 SQL Server Reporting Services 导出 Excel 生成异常大的文件?

SQL 性能方面,: an IF. ..ELSE 子句和 WHERE LIKE 子句哪个更好?

sql-server-2005 - 具有不同用户配置文件的 SQL Server 表

sql-server - Visual Studio Professional 是否附带 SQL Server Developer(非 Express)版本?

java - 结果集对象已关闭 - jtds

sql - 每个数据库运行时间最长的查询