在名为TRY
的表格中,我有一列ABC
,其中的记录值为abc:30|def:g h i|j:k|l:m|n:o|p: |q: 0.25 |r:0.47|s:t u
我想在r:
之后获取数值。给出的示例的值为 r:0.47 但它也可以具有 123456.012596363 的值
我不确定使用patindex。任何人都可以帮忙。
非常感谢
答案 0 :(得分:0)
试试这个...........
declare @abc nvarchar(100) = 'abc:30|def:g h i|j:k|l:m|n:o|p: |q: 0.25 |r:0.47|s:t u'
select
substring(substring(@abc,charindex('r:',@abc) + 2 ,len(@abc)),
1,
charindex('|',substring(@abc,charindex('r:',@abc) + 2,len(@abc))) - 1)
对您的表格使用此查询
select
substring(substring(abc,charindex('r:',abc) + 2 ,len(abc)),
1,
charindex('|',substring(abc,charindex('r:',abc) + 2,len(abc))) - 1)
from TRY
-----最终尝试
select case when charindex('r:',abc) = 0 then abc else
substring(substring(abc,charindex('r:',abc) + 2 ,len(abc)),
1,
charindex('|',substring(abc,charindex('r:',abc) + 2,len(abc))) - 1) end
from TRY