我正在使用SQL Server,我想创建一个使用另一个String(描述)部分的列(Temp)。我想从Description:
中检索GB信息说明字段可能如下所示:
'blah blah blah 100GB blah'
- 我对'100GB'
感兴趣。
问题是字符串中GB和位置的数量可能会有所不同。
答案 0 :(得分:0)
我建议你使用正则表达式,但是你还需要使用CLR函数。但是,您可以指定要使用的确切正则表达式,以便更准确。
http://www.yumeidearmas.com/2013/10/02/regular-expressions-in-sql/
如果您想要一个“更简单”的解决方案,也许您也可以使用PATINDEX来查找“GB”的索引。将是100字符串上唯一的数字(或者你还可以有更多?)?
declare @string nvarchar(100) = 'blah blah blah 100GB blah'
select SUBSTRING(@string, PATINDEX('%[0-9]%', @string), PATINDEX('%GB%', @string)-PATINDEX('%[0-9]%', @string))
这种情况适用于您的示例,但如果由于某种原因格式不同(没有数字,或者有2个数字等)将无效。