这里的limit怎么使用呀,降序取第一条数据

微信截图_20201117160419.png微信截图_20201117160757.png

FineReport Mhhhh 发布于 2020-11-17 16:08
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
1
zsh331Lv8专家互助
发布于2020-11-17 16:17

楼主:使用的是OpenEdge数据库吧,使用【OFFSET 1 或 FIRST 1 ROWS ONLY】来获取1条数据;代替limit功能;

  • Mhhhh Mhhhh(提问者) okk 我试试 谢谢哥
    2020-11-17 16:48 
  • zsh331 zsh331 回复 Mhhhh(提问者) 表客气。
    2020-11-17 16:49 
最佳回答
0
朝赟丶Lv6初级互助
发布于2020-11-17 16:11(编辑于 2020-11-17 16:13)

什么数据库,可能不支持limit子句

比如mysql支持,oracle就不支持。

至于实现:

row_number() over(partition by 分组字段 order by 排序字段 desc) rn

然后外套一层,where rn = 1

  • Mhhhh Mhhhh(提问者) 我问了下同事 他说写法还是和mysql 的写法一样
    2020-11-17 16:26 
  • 朝赟丶 朝赟丶 回复 Mhhhh(提问者) 你要不试试另外一个答友zsh331提供的写法? 或者用我的这个,支持列序号的应该都可以这样做。
    2020-11-17 16:30 
  • Mhhhh Mhhhh(提问者) 我都试试先 谢谢您嘞
    2020-11-17 16:48 
最佳回答
0
冥河Lv8初级互助
发布于2020-11-17 16:29

应该和SQL Server是一样的,在select 后面加个 TOP 1 试试



参考语句:

SELECT TOP(5)  订单.订单ID,SUM(订单明细.单价*(1-折扣)*数量)AS 销售额,公司名称 

FROM 订单,订单明细,运货商 

WHERE 订单.订单ID= 订单明细.订单ID

AND 订单.运货商= 运货商.运货商ID

GROUP BY 订单.订单ID,公司名称 

ORDER BY 销售额DESC


  • Mhhhh Mhhhh(提问者) 哥 我试了一下 是可行的 然后我还有问题想问您 就是 TOP 后面的数据决定取几条 我如果想精确到取第二条 这个写法应该怎么去写
    2020-11-17 17:28 
  • 冥河 冥河 回复 Mhhhh(提问者) 只取第2名的吗? 参考语句: select Name from B join A on B.Number = A.Number where A.Score = ( select top 1 Score from (select distinct top 2 Score from A order by Score desc) as T order by Score )
    2020-11-17 20:41 
  • 3关注人数
  • 657浏览人数
  • 最后回答于:2020-11-17 16:29
    请选择关闭问题的原因
    确定 取消
    返回顶部