select top 2 * from [ProductInfo] Where [Flag_Nice]=true and [ProClassID]=" + CID + " ORDER BY [sortid] asc "本意是想 取2条数据 结果 不是两条 而是 符合 where 的都出来了但去掉 ORDER BY [sortid] asc 就正确了 但不是按 想要的排序ID来的
如果要按排序ID来取两条数据该怎么做 谢谢 了
如果要按排序ID来取两条数据该怎么做 谢谢 了
以下来自百度select top 18 * from news order by hits Desc为什么我用此句的时候,返回的不是18行,而是21行呢?
问题补充:top15没问题,但我要的是top18啊,哪个大虾知道
没有加什么呀,就这么一句
top语句选择的时候,你的语句是从hits字段降序选择前十八个。假设你的hits是数字,从大到小第18个记录的hits字段假设是3,但是你的数据库表中hits字段值是3的记录却不止一个(由你所说可知有4个),这时候并列18的记录会被全部读出.这就是你top18却读出21条记录的原因.
一般需要前18条时,你得在逻辑设计的时候就确保hits字段的值不会有重复才行。
Select Top 18 * From(Select * From News Order By hits Desc)
news应该有个唯一ID的嘛, 如果再指定这个ID来排序就一定会只返回top 18了
关于 top 和 order by 一起使用产生的查询结果不正确的问题