函数查询出错,执行出来disam字段没有值,我用order by语句查的话就有值。这是什么问题  求解_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
8
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2497 | 回复: 7   主题: 函数查询出错,执行出来disam字段没有值,我用order by语句查的话就有值。这是什么问题  求解        下一篇 
邻家小妹妹
注册用户
等级:列兵
经验:112
发帖:2
精华:0
注册:2015-5-25
状态:离线
发送短消息息给邻家小妹妹 加好友    发送短消息息给邻家小妹妹 发消息
发表于: IP:您无权察看 2015-5-25 9:33:02 | [全部帖] [楼主帖] 楼主

select rownum as yt,id,disam from (select id,disam from xztjajb order by disam desc) where rownum <=3


用top_n函数查询出错,执行出来disam字段没有值,我用order by语句查的话就有值。这是什么问题  求解




赞(0)    操作        顶端 
烽火戏诸侯
注册用户
等级:上士
经验:303
发帖:6
精华:0
注册:2015-3-30
状态:离线
发送短消息息给烽火戏诸侯 加好友    发送短消息息给烽火戏诸侯 发消息
发表于: IP:您无权察看 2015-5-25 9:36:25 | [全部帖] [楼主帖] 2  楼

where rownum <=3

这个不对吧,数据最大三位为空值

select rownum as yt,id,disam from (select id,disam from xztjajb order by disam desc) where rownum <=4



赞(0)    操作        顶端 
邻家小妹妹
注册用户
等级:列兵
经验:112
发帖:2
精华:0
注册:2015-5-25
状态:离线
发送短消息息给邻家小妹妹 加好友    发送短消息息给邻家小妹妹 发消息
发表于: IP:您无权察看 2015-5-25 9:39:58 | [全部帖] [楼主帖] 3  楼

where rownum <=3这个不对吧,数据最大三位为空值select rownum as yt,id,disam from (select id,disam from xztjajb order.....
  
 是的,如果要disam要加个is not null,要怎么加呀



赞(0)    操作        顶端 
烽火戏诸侯
注册用户
等级:上士
经验:303
发帖:6
精华:0
注册:2015-3-30
状态:离线
发送短消息息给烽火戏诸侯 加好友    发送短消息息给烽火戏诸侯 发消息
发表于: IP:您无权察看 2015-5-25 9:44:02 | [全部帖] [楼主帖] 4  楼

select rownum as yt,id,disam from (select id,disam from xztjajb order by disam desc) where disam  is not null  and rownum <=4



赞(0)    操作        顶端 
青草繁星
注册用户
等级:少校
经验:951
发帖:9
精华:0
注册:2015-3-30
状态:离线
发送短消息息给青草繁星 加好友    发送短消息息给青草繁星 发消息
发表于: IP:您无权察看 2015-5-25 9:46:11 | [全部帖] [楼主帖] 5  楼

select rownum as yt,id,disam from (select id,disam from xztjajb order by disam desc) where disam  is.....

空的条件怕是要加在内层括号内,这样出来的外层数据还是里面排序吗?

select rownum as yt,id,disam from (select id,disam from xztjajb  where disam  is not null   order by disam desc)
wehre   rownum <=3


你看看  这样出来的应该才是你需要的
你应该是要  disam排名的前三位



赞(0)    操作        顶端 
邻家小妹妹
注册用户
等级:列兵
经验:112
发帖:2
精华:0
注册:2015-5-25
状态:离线
发送短消息息给邻家小妹妹 加好友    发送短消息息给邻家小妹妹 发消息
发表于: IP:您无权察看 2015-5-25 9:56:10 | [全部帖] [楼主帖] 6  楼

[qaote=引用4楼烽火戏诸侯的回复select rownum as yt,id,disam from (select id,disam from xztjajb order by disam desc) where disam  is.....
空的条件怕是要加在内层括号内,这样出来的外层数据还是里面排序吗?select rownum as yt,id,disam from (select id,disam from xztjajb  whe.....


可以了,我把小数给截取掉了,只要整数我,嘻嘻
select rownum as yt,id,trunc(disam,0) from (select id,disam from xztjajb b where b.disam is not null order by disam desc) where rownum <=3


赞(0)    操作        顶端 
吹牛打豆豆
注册用户
等级:中尉
经验:418
发帖:12
精华:0
注册:2015-3-30
状态:离线
发送短消息息给吹牛打豆豆 加好友    发送短消息息给吹牛打豆豆 发消息
发表于: IP:您无权察看 2015-5-25 10:01:58 | [全部帖] [楼主帖] 7  楼

这样不对吧,你不去小数看看



赞(0)    操作        顶端 
青草繁星
注册用户
等级:少校
经验:951
发帖:9
精华:0
注册:2015-3-30
状态:离线
发送短消息息给青草繁星 加好友    发送短消息息给青草繁星 发消息
发表于: IP:您无权察看 2015-5-25 10:03:13 | [全部帖] [楼主帖] 8  楼

这样不对吧,你不去小数看看

如果是 oracle因该是对的,你把外层的where  去掉   运行内网两层数据对比前三个一不一样就明白了,那个看格式  一般都四舍五入的 很少截了的



赞(0)    操作        顶端 
总帖数
8
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论