判断值进行字段拼接

freepw 2017-03-15 01:53:16
表B

字段有
a int (值示例:1-10的数字) 代表: 第几节课
b int (值示例:1-10的数字) 代表: 长度

a b
1 3
3 2
5 4
2 1
8 5


想实现的一个字符拼接

如果a=1 b=3 则输出 '1,2,3' 如果a=2 则输出 '2,3,4'
如果a=3 b=2 则输出 '3,4'
...全文
247 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
freepw 2017-03-16
  • 打赏
  • 举报
回复
解决了。 create function f(a int,b int) returns text begin declare re text; while b > 0 do set re=concat_ws(',', re, a); select a+1, b-1 into a, b; end while; return re; end;
流浪墨尔本 2017-03-16
  • 打赏
  • 举报
回复
怎么感觉没规律呢
js14982 2017-03-15
  • 打赏
  • 举报
回复
递增可能超过9么?还是只在0-9内? substr('0123456789',instr('0123456789',a),b)
freepw 2017-03-15
  • 打赏
  • 举报
回复
引用 1 楼 js14982 的回复:
不是很懂意思, case when a=1 and b=3 then '1,2,3' 这样的么?
不是这个意思。 a是初始值, b是长度, 举个例:a为1-5的数字,b为a这个数字+1递增的次数.
js14982 2017-03-15
  • 打赏
  • 举报
回复
不是很懂意思, case when a=1 and b=3 then '1,2,3' 这样的么?

1,617

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧