2011-11-10 4 views
1

Привет у меня есть строка llike,Как отделить дату от строки?

"на 01-15-09 двухкомпонентной фактор 0,8"

я хотел отделить эту строку в follwing образом,

1] дата, 01- 15-09 2] Коэффициент 0,8

ПРИМЕЧАНИЕ: Длина строки не фиксирована.

так как мы можем разделить данные в виде # 1 & # 2?

ответ

3

Чтобы получить дату, вы можете использовать PATINDEX().

declare @yourString varchar(100) 
set @yourString = 'on 01-15-09 with a factor of 0.8' 

select substring(@yourString, 
      patindex('%[0-9][0-9]-[0-9][0-9]-[0-9][0-9]%', @yourString), 
      8) 

Чтобы получить "фактор хх" вы можете сделать:

select substring(@yourString, 
     patindex('%with a%', @yourString) + 7, 
     20) 
+1

@VikrantMore не то, что я знаю. Для работы требуется конкретный шаблон. Дата проста, но найти «фактор xx» невозможно, если вы не знаете строку, которая предшествует ей. Видите, что я говорю? –

1
declare @txt varchar(max) 
set @txt = 'on 01-15-09 witha factor of 0.8' 

select cast(substring(@txt, patindex('% [0-9][1-9]-%', @txt), 9) as date) [date], 
cast(right(@txt, patindex('%_ %', reverse(@txt))) as decimal(9,1)) Factor 

Результат:

date  Factor 
---------- ------ 
2009-01-15 0.8 
Смежные вопросы