我有一个包含虚线字符串的表。
我希望在最后一个破折号和第二个破折号之间添加字符串
短划线表示-
SQL Server表
Create table tbl1 (vdocno varchar(200))
insert into tbl1 values('Abcd-67-Hji-kok-74-Kio')
insert into tbl1 values('Bki-6kdi7-jhfi-Hfjdji-koikk-7ji4-Kloio')
所需的输出值:
74
7ji4
答案 0 :(得分:1)
它不是最漂亮的,我毫不怀疑它可以更有效地完成,但是这里有一些可以根据需要改进的东西:
create table tbl1 (vdocno varchar(200))
insert into tbl1 values('Abcd-67-Hji-kok-74-Kio')
insert into tbl1 values('Bki-6kdi7-jhfi-Hfjdji-koikk-7ji4-Kloio')
select vdocno,
reverse(substring(
reverse(substring(vdocno, 1, LEN(vdocno) - CHARINDEX('-',REVERSE(vdocno)))),
1, CHARINDEX('-',
reverse(substring(vdocno, 1, LEN(vdocno) - CHARINDEX('-',REVERSE(vdocno))))
)
- 1))
from tbl1
这会反转字符串并在最后一个破折号之前剥离该部分,然后使用保留字符串,它会在第一个破折号之后删除内容,然后再将其反转为正确的方式。