1

早些时候我试过这个

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

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

4

3 回答 3

1

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

于 2013-09-24T15:30:00.477 回答
0

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

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

于 2013-09-24T15:40:41.833 回答
0

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

于 2013-09-24T15:45:28.060 回答