2014-01-09 2 views
0

В таблице с именем 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: Пример, приведенный имеет значение, как г: 0,47 Но он также может иметь значение как 123456.012596363

Я не уверен в использовании patindex. Кто-нибудь может помочь.

Большое спасибо

ответ

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 

----- Final 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 
+0

Привет, Кишоре, спасибо, что нашли время для ответа на этот вопрос. Я получаю эту ошибку - Msg 537, уровень 16, состояние 2, строка 1 Неверный параметр длины передается функции LEFT или SUBSTRING. Пожалуйста, помогите, если это возможно. Спасибо – Proud2bOZ

+0

Привет @ Proud2bOZ Пожалуйста, попробуйте окончательный запрос, который я разместил выше. – Kishore

+0

Привет, Кишоре, Большое спасибо за помощь в этом. Я очень ценю время и усилия, которые вы внесли. Cheers Mate – Proud2bOZ

Смежные вопросы