选择“查询”,返回的行数多于传递的参数

本文关键字:于传递 参数 返回 查询 选择 | 更新日期: 2023-09-27 18:32:32

>早些时候我尝试过这个

string query =  "SELECT TOP " + TraineesPerBlock + 
               @"         * 
                   FROM TraineeDetail 
                  WHERE SUBBR = '0' 
                 ORDER BY MAXM DESC" ;

在学员中,当值通过 69 时,它给出了 110 条记录,我应该只给出 69 条记录。MAXM 是一个双精度字段,也有具有相同 MAXM 值的记录。有什么解决办法吗?

选择“查询”,返回的行数多于传递的参数

首先,我会尝试找出问题是由于开发环境还是数据库造成的。在DBMS shell中执行脚本,将TraineesPerBlock替换为数字69,70。在工作室中执行相同的操作。此外,如果 TraineesPerBlock 是 int,请尝试将其转换为字符串显式。

您是否混淆了十六进制和十进制?

0x69(十六进制)非常接近 105(十进制),这是您得到的数字。

top 指令不返回前 n 个项目,因为其中一个很容易被引导 相信。相反,它返回至少 n 个不同的项目,由 结果的排序。 引自: 使用 TOP 5 访问 SQL 返回超过 5 个结果?