如何取一段字符内所有数字

不穿内裤的超人 2017-06-25 01:30:49
stri	i	j	le	st                               fy
bank 1 4 20 bank_back_money-date 银行
back 6 4 20 bank_back_money-date 回退
money 11 5 20 bank_back_money-date 时间
date 17 4 20 bank_back_money-date _
_ 5 1 20 bank_back_money-date _
_ 10 1 20 bank_back_money-date
- 16 1 20 bank_back_money-date -
dat 17 3 20 bank_back_money-date 数据

这里的i意思是stri字段在st字段中的起始位置和取数,等于说如果substring(st,i,j)得到的就是stri字段了
问题如题目,我最后要变成
stri	i	j	le	st  mun
bank 1 4 20 bank_back_money-date 1,2,3,4
back 6 4 20 bank_back_money-date 6,7,8,9
money 11 5 20 bank_back_money-date 11,12,13,14,15
date 17 4 20 bank_back_money-date 17,18,19,20
_ 5 1 20 bank_back_money-date 5
_ 10 1 20 bank_back_money-date 10
- 16 1 20 bank_back_money-date 16
dat 17 3 20 bank_back_money-date 17,18,19

等于把中间所包含的值取出来。

扩展问题是,我不取出来的情况下,如何知道哪些段不重复。
例如我用前面7行来看的话,字符串取值包含从1-20刚好,
如果不取date而取最后一条,那么字符串取值包含1-19,缺一位。
两种组合方法都是可以的,我最后要做的事情是把这个字段翻译出来,按照第一种1-20的方法来翻译的话,得到结果
银行_回退_现金-时间
按照字符串取值包含1-19来翻译
银行_回退_现金-数据e (dat在字典里面等同data,翻译为字典)
如果有同一个值中有重复数据的情况,那么就取多种组合,如何来做?
我最后要做的是,按照我常用字典的命名规则翻译出我的表名,有多种翻译给出多种翻译,把最优翻译排在最上面,比如上面说道的1-20都包含的肯定比1-19包含的翻译情况更好,当然这个结论并不一定正确。

通俗的来讲,我字段le给出了这个字段的最大长度,我在不重复组合的情况下,最多数字组合排在最上面如何做?
以下面这个数据为例
with cte(mun,le,id) as (
select '1,2,3,4',10,1 union --1
select '4,5,6,7',10,2 union --2
select '8,9,10',10,3 union --3
select '6,7,8',10,4 union --4
select '7,8,9',10,5 union --5
select '2,3,4,5',10,6 union --6
select '5',10 ,7 --7
)
select * from cte order by id
--这个例子中符合条件的组合有
--1+3: 1,2,3,4 ,8,9,10
--1+4: 1,2,3,4 ,6,7,8
--1+5: 1,2,3,4 ,7,8,9
--1+7: 4,5,6,7 ,5
--2+3: 1,2,3,4 ,8,9,10
--3+6: 2,3,4,5 ,8,9,10 (这条顺序是调整过的)
--4+6 2,3,4,5 ,6,7,8 (这条顺序是调整过的)
--4+7 5 ,6,7,8 (这条顺序是调整过的)
--等等

当然实际应用中组合不可能是两条组合,可能和前面一个,7条组合,所以要梳理出来符合条件的,还是有点难的。
求大神
...全文
364 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouyuehai1978 2017-07-07
  • 打赏
  • 举报
回复
引用 1 楼 qq_18219519 的回复:
没有大神看见吗
估计是没人看懂你的描述
  • 打赏
  • 举报
回复
没有大神看见吗

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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