黑马程序员技术交流社区
标题:
请教 SQL 语句 查询 信息
[打印本页]
作者:
黑马丁巍
时间:
2012-12-13 19:32
标题:
请教 SQL 语句 查询 信息
比如有5个人,字段有fAge,fName,fSalary,能够用一个查询语句直接查找到最高工资那个人的详细信息吗? 我只知道用order by 按照降序排序 看第一个人的信息,有方法能直接select 到那一个人的信息吗?
作者:
吴步兵
时间:
2012-12-13 21:49
select * from table where fsalary=(select max(fsalary) from table)
作者:
张海涛
时间:
2012-12-13 22:20
select * from table order by fSalary desc limit 0,1;
解释:
*表示查询所有字段;
order by是通过某个字段进行排序;
desc是降序排序,从大到小排序,asc是从小到大进行排序,以fSalary字段进行desc排序,工资最高的人就排在最上面;
limit 0,1是从第0个位置开始取记录,取多少条记录呢? 1就是取一条,这样就取到了降序排序后的第一条记录;
综合而言就取得了工资最高的那个人的详细信息了!
作者:
张海涛
时间:
2012-12-13 22:22
本帖最后由 张海涛 于 2012-12-13 22:28 编辑
{:soso_e121:}
作者:
黑马丁巍
时间:
2012-12-13 23:41
谢谢大家,我自己太粗心了,后面的视屏讲到了,限制结果集行数就行了
select top 1 * from table order by fSalary desc 和你说的那个select * from table order by fSalary desc limit 0,1;
是一回事吗
作者:
赵小江
时间:
2012-12-14 00:16
select fAge,fName,MAX(fSalary) fSalary
from table
不用排序,直接用MAX函数找到工资例中的最大数。空格后加fSalary是别名。
作者:
黑马-张扬
时间:
2012-12-14 09:58
对,确实不用排序,因为找的是最大工资的,用max就行了
作者:
马铿
时间:
2012-12-14 10:06
select fAge,fName,fSalary from table where fsalary=(select max(fsalary) from table)
先查出最高工资,然后把该最高工资当做条件,再做一次过滤查询技能得出结果
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2