sql动态参数列怎么排序?

在sql数据集里添加了动态参数col,参数值范围:A,B

SELECT 

${if(len(col)=0,'C表字段名',col)},sum(D)D,SUM(E)E FROM C表

where 1=1

${if(len(col)<1,'group by A, B 

order by A,B',"group by "+col+" order by " + col + "")}

怎么在数据集里对 A,B列自定义排序呢?例如A列按照(三,一,二)顺序排序,B列按照拼音排序

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

WorkBook1.cpt

是你要的么?

  • 苹果XP 苹果XP(提问者) 还没达到我想要的效果,谢谢哈
    2021-07-12 14:48 
  • Z4u3z1 Z4u3z1 回复 苹果XP(提问者) order by (case when a=\'三\' THEN 0 WHEN A=\'二\' then 1 else 2 end) asc,(B collate Chinese_PRC_CI_AS_KS_WS) asc SQL SERVER 中文排序相关: _CI(CS) 是否区分大小写,CI 不区分,CS 区分 _AI(AS) 是否区分重音,AI 不区分,AS 区分 _KI(KS) 是否区分假名类型,KI 不区分,KS 区分 _WI(WS) 是否区分宽度,WI 不区分,WS 区分
    2021-07-12 15:07 
最佳回答
0
snrtuemcLv8专家互助
发布于2021-7-9 16:00

排序跟group by有什么关系,

SELECT 

${if(len(col)=0,'*',col)} FROM C表

where 1=1

${if(len(col)<1,"order by A,B"," order by " + col )}

  • 苹果XP 苹果XP(提问者) 问题里面漏写了还有其他的求和项,所以有GROUP BY,这个语句没问题 但是order by 是默认排序,我想要实现自定义排序,问题已经完善,麻烦帮忙看下,因为COL值不一定,可能单个,多个或者空值 因为数据量比较大想在SQL里排好序
    2021-07-09 16:34 
  • 2关注人数
  • 459浏览人数
  • 最后回答于:2021-7-9 17:32
    请选择关闭问题的原因
    确定 取消
    返回顶部