我正在运行 SQL Server 2008 R2 Management Studio。我的表中有一列 PO 编号。PO 编号应该是一串数字连字符 PO 连字符最后四个或五个字符。
所以,它应该看起来像123456123-PO-1234
我有一些是123456-123-PO-1234-0
。
有没有办法可以去掉第一个连字符和最后一个连字符以及 0?
我正在运行 SQL Server 2008 R2 Management Studio。我的表中有一列 PO 编号。PO 编号应该是一串数字连字符 PO 连字符最后四个或五个字符。
所以,它应该看起来像123456123-PO-1234
我有一些是123456-123-PO-1234-0
。
有没有办法可以去掉第一个连字符和最后一个连字符以及 0?
假设没有无效数据
declare @v varchar(20) = '123456123-PO-1234-0'
select stuff(left(@v, len(@v) -charindex('-', reverse(@v))),
charindex('-', @v + '-'), 1, '')
编辑:
用作表格:
declare @t table(v varchar(30))
insert @t values('123456123-PO-1234-0')
select stuff(left(v, len(v) -charindex('-', reverse(v))),
charindex('-', v + '-'), 1, '')
from @t