捕获字符串中的字符串

Capturing a String Within a String

我正在尝试从文本字符串中解析出值。这些值嵌套在字符串中。例如,我得到的平面文件看起来像这样:"John Q Public (12345-01) - Customer referral"。我想解析出账号;例如,12345-01,来自文本字符串。起始位置不是恒定的,帐号的长度也不是恒定的。模式是#####-##。

如有任何帮助,我们将不胜感激。

一些基本的字符串操作将捕获您想要的值。不知道这是否适用于您的实际情况,因为我不知道您的数据 "stable" 或一致性如何。

declare @Something varchar(100) = 'John Q Public (12345-01) - Customer referral'

select substring(@Something
    , charindex('(', @Something) + 1 --starting position of the values you want
    , charindex(')', @Something) - charindex('(', @Something) - 1 --length of the values you want
    )