在报名下拉框筛选数据排名前十,后十的数据

在下拉框只有前十,后十两个选项,通过选项筛选出数据只展示前十名的数据,或后十名的数据,请问大家的思路是?

FineReport lijiaying 发布于 2023-9-26 15:01
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-9-26 15:03(编辑于 2023-9-26 15:07)

数据集上处理

啥数据库:SqlServer?oracle?mysql?

-------------

已SqlServer为例

select  top 10 * from tablename where ..........  order by 排名字段 ${if(下拉控件=="前十","desc","asc")}

  • lijiaying lijiaying(提问者) impala的
    2023-09-26 15:10 
  • Z4u3z1 Z4u3z1 回复 lijiaying(提问者) 不会 你参考楼下的吧
    2023-09-26 15:11 
最佳回答
0
且慢且佛Lv3初级互助
发布于2023-9-26 15:05

两个SQL 一个前十,一个后十,加个标识.union all 拼一起,下拉框用标识筛选数据集,

最佳回答
0
snrtuemcLv8专家互助
发布于2023-9-26 15:06

前10的sql

mssql:select top 10 * from 表 order by zje

mysql/sqlite:select * from 表 order by zje limit 10

Oracle:select * from (select * from 表 order by zje) where rownum<=10 order by rownum asc

后10的就是

mssql:select top 10 * from 表 order by zje desc

mysql/sqlite:select * from 表 order by zje desc limit 10

Oracle:select * from (select * from 表 order by zje) where rownum<=10 order by rownum desc

 你控件,这个写法,mysql为例

select top 10 * from 表 order by zje ${if(控件名="前十","","desc")}

  • lijiaying lijiaying(提问者) 也是得准备两个sql吗?还是说把前10,后10的合并在一起?
    2023-09-26 15:10 
  • snrtuemc snrtuemc 回复 lijiaying(提问者) 没有,我只是举例,最后一个写法就可以
    2023-09-26 15:11 
  • lijiaying lijiaying(提问者) 回复 snrtuemc 再请教您一下,如果还想有别的排名数 比如有前三前十 后三后十 都在一个下拉框里 这样怎么处理?
    2023-09-26 15:21 
最佳回答
0
ZxxTLv6初级互助
发布于2023-9-26 15:06

下拉框就是参数,前后十在  数据集 用if函数根据参数判断是order by   ,还是order by desc

最佳回答
0
congerLv6高级互助
发布于2023-9-26 15:06(编辑于 2023-9-26 16:56)

select * from 销量

order by 销量 ${if(len(控件名)=0,"",控件名)}

limit 10

默认查前十名或者你自己设置其他功能,然后在控件里设置自定义 前十为asc 后十位desc

就是控制order by的顺序image.png

---------------------------------------------

image.png

  • lijiaying lijiaying(提问者) 再咨询您一下,如果还有其他排名选项,怎么处理,不仅有前十,后十,还有前三后三
    2023-09-26 15:25 
  • conger conger 回复 lijiaying(提问者) 一个道理,那就动态拼接你的限制,比如前三就拼接asc和limit 3 在limit后面加IF,当然你也要给一个默认值
    2023-09-26 16:54 
  • 4关注人数
  • 455浏览人数
  • 最后回答于:2023-9-26 16:56
    请选择关闭问题的原因
    确定 取消
    返回顶部