有空值情况下,如何实现数字、日期、字符串都能排序呢

功能实现:当我点击字段(字符串类型或数字类型或日期类型)标题,会进行排序,非在SQL语句内实现

 

根据实例用了公式:

INARRAY(EVAL($asc),SORTARRAY(EVAL($asc+"[!0]")))*$a

但有空值时,排序无效,没有排序正常

 

参考:https://help.fanruan.com/finereport/doc-view-890.html

 

=========

空值问题解决了,但点击时又出现了另一问题, 如图,点击已办字段排序时,升序,出现了两段px.png

 ================

追问:如图,如果有占比字段,且也有为0的空值,会出现分段排序,如何修改呢

BFB.jpg

 

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

数组排序公式sortarray只会在数据类型一致的情况下才排序,所以需要去掉数组中的空值

INARRAY(EVAL($asc),SORTARRAY(EVAL($asc+"[!0]{len("+$asc+")>0}")))*$a

多列动态排序示例二_空格.cpt

image.png

  • chyou chyou(提问者) 通过这种方式,以上问题都解决了,谢谢
    2021-03-24 17:00 
  • chyou chyou(提问者) 加了占比字段,如何调整公司式呢
    2021-03-24 17:46 
  • axing axing 回复 chyou(提问者) 另外开个帖子,把你的模板输出内置数据模板上传上来
    2021-03-24 18:00 
  • axing axing 回复 chyou(提问者) 新提问的帖子,上传一下模板
    2021-03-25 10:45 
  • chyou chyou(提问者) 回复 axing 已传
    2021-03-25 15:19 
最佳回答
1
shirokoLv6资深互助
发布于2021-3-24 16:43(编辑于 2021-3-24 16:55)

IF(LEN(EVAL($asc))=0,0,INARRAY(EVAL($asc),SORTARRAY(EVAL($asc+"[!0]{LEN("+$asc+")>0}")))*$a)

最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-3-24 16:29

你的意思是一个字段中放有:数字、日期、字符串还有空值?还是说这是分开的四个字段?

  • chyou chyou(提问者) 是三个字段,,这三个字段里含有空值,这三个字段比如是金额、销售日期、姓名 这样的
    2021-03-24 16:35 
  • Z4u3z1 Z4u3z1 回复 chyou(提问者) select * from TABLE WHERE 你的条件 ORDER BY 金额 ASC,销售日期 ASC,姓名 ASC
    2021-03-24 16:38 
  • chyou chyou(提问者) 回复 Z4u3z1 不好意思,没描述清楚,当我点击字段(字符串类型或数字类型或日期类型)标题,会进行排序,非在SQL语句内实现 效果请看参考实例,因为我的字段里有空值,所以点击字段标题后,排序功能无效
    2021-03-24 16:44 
  • 5关注人数
  • 548浏览人数
  • 最后回答于:2021-3-24 17:44
    请选择关闭问题的原因
    确定 取消
    返回顶部