首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

这个SQL话语的结果是什么?为什么

2013-07-04 
这个SQL语句的结果是什么?为什么?本帖最后由 gaswei 于 2013-06-29 11:57:57 编辑SELECTorder_num,total_p

这个SQL语句的结果是什么?为什么?
本帖最后由 gaswei 于 2013-06-29 11:57:57 编辑 SELECT  order_num,  total_price  
FROM  items a 
 WHERE  10 >      
( SELECT  COUNT  ( * )    FROM  items b    WHERE  b.total_price < a.total_price )
ORDER  BY  total_price 

看不明白为什么是选出最小的前10项,求解释,谢谢!
[解决办法]
你可以这么看,加入total_price有

1-20 20个数,取a.total_price为13,小于这个数的有多少,1-12,12个是吧! 12 肯定是大于 10的,那么13肯定不符合,看到这个判断逻辑,楼主应该清楚一些东西了吧!这个查询相当于对于一个特定的total_price,只要小于它的数据行数不超过10,就可以被查询到,怎么才能小于10,当然要让这个特定的total_price在最小的10个toal_price范围之内,那么查询到的也就是最小的10个total_price对应的数据。

热点排行