A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 余晓亮 中级黑马   /  2012-4-26 08:54  /  1865 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在呼叫员工作流水的练习时,输出所有数据中通话时间最长的5条记录select top 5 *, DATEDIFF(SECOND,Starttime,Endtime)as N'通话时长' from T_LianXi
order by DATEDIFF(SECOND,Starttime,Endtime) desc,我这样写:
select top 5 *, DATEDIFF(SECOND,Starttime,Endtime)as N'通话时长' from T_LianXi
order by DATEDIFF(SECOND,Starttime,Endtime) desc
这样没有出现自己想象中的结果。它先把所有的数据记录输出,然后输出了所有数据中通话时间最长的5条记录。怎么会这样?

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

4 个回复

倒序浏览
select top 5 *, DATEDIFF(SECOND,Starttime,Endtime)as N'通话时长' from T_LianXi
order by DATEDIFF(SECOND,Starttime,Endtime) desc
这个意思就是说:输出所有数据中通话时间最长的5条记录, 你想要的结果,你说出来。
回复 使用道具 举报
郭耀强 发表于 2012-4-26 11:48
select top 5 *, DATEDIFF(SECOND,Starttime,Endtime)as N'通话时长' from T_LianXi
order by DATEDIFF(SE ...

执行代码 结果分为两部分:1是所有数据的通话记录。2是所有数据中最长的5条记录。第二部分是我想要的。
已经top5*了 怎么还会出现第一部分?而且第一部分还是全部的数据,而不是前5条?
回复 使用道具 举报
郭耀强 发表于 2012-4-26 11:48
select top 5 *, DATEDIFF(SECOND,Starttime,Endtime)as N'通话时长' from T_LianXi
order by DATEDIFF(SE ...

select top 5 DATEDIFF(SECOND,Starttime,Endtime)as N'通话时长' ,* from T_LianXi
order by DATEDIFF(SECOND,Starttime,Endtime) desc
如果这样 结果就不会出现两部分 只有通话最长的5条记录。
回复 使用道具 举报
效果是这样

1.png (36.82 KB, 下载次数: 31)

1.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马