查找并选择SQL字符串的一部分

时间:2014-03-03 18:58:18

标签: string sql-server-2008 find

我正在使用SQL Server,我想创建一个使用另一个String(描述)部分的列(Temp)。我想从Description:

中检索GB信息

说明字段可能如下所示: 'blah blah blah 100GB blah' - 我对'100GB'感兴趣。

问题是字符串中GB和位置的数量可能会有所不同。

1 个答案:

答案 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个数字等)将无效。