如何把这两列在sql中分别左对齐,求指导

image.png

FineReport yzm333277 发布于 2024-6-25 08:23
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
华莉星宸Lv7资深互助
发布于2024-6-25 08:28(编辑于 2024-6-25 08:35)

把名字拼空字符串,都变成最长的那个名字

参考

select sname, zb,

       concat(case

                when length(sname) = 2 then

                 sname || '        '

                when length(sname) = 3 then

                 sname || '    '

                else

                 sname

              end,

              zb) as sname

  from (select '张三' as sname, '♥贡献值' as zb

          from dual

        union all

        select '哈利波特' as sname, '♥贡献值' as zb

          from dual

        union all

        select '白居易' as sname, '♥贡献值' as zb

          from dual)

image.png

  • yzm333277 yzm333277(提问者) 我用的mysql数据库,sql这样写在帆软中还是实现不了对齐
    2024-06-30 22:23 
最佳回答
0
PILGRIMLv5初级互助
发布于2024-6-25 08:30(编辑于 2024-6-25 08:31)

思路:第一步计算name列的字符数,找到最大的字符数,第二步用最大字符数与name列字符数做差,第三步根据差值用||连接差值数量的空字符

最佳回答
0
7wfMntpvLv3见习互助
发布于2024-6-25 08:47

参考代码如下:

select concat(rpad(name,10,' '),ww) ls 

from(

  select '张三' name,'贡献值' ww from dual

  union all

  select '哈姆雷特' name,'贡献值' ww from dual

)

实际效果

image.png

  • 华莉星宸 华莉星宸 学习了
    2024-06-25 08:51 
  • yzm333277 yzm333277(提问者) 我用的mysql数据库,sql这样写还是实现不了对齐
    2024-06-30 22:18 
  • 7wfMntpv 7wfMntpv 回复 yzm333277(提问者) 上面提问的图片是最新的吗
    2024-07-01 10:43 
  • 7wfMntpv 7wfMntpv 回复 yzm333277(提问者) rpad(name,10,“ “) 这里换成单引号和一个空格(' '),试一下
    2024-07-01 11:20 
  • yzm333277 yzm333277(提问者) 回复 7wfMntpv 还是不行呀 帆软里实现不了吗
    2024-07-01 22:08 
  • 4关注人数
  • 350浏览人数
  • 最后回答于:2024-6-25 08:47
    请选择关闭问题的原因
    确定 取消
    返回顶部