Выберите часть поля после последнего появления определенного символа в MSSQL
У меня есть поле, которое содержит журнал изменений. каждый раз добавляет дату в квадратных скобках.
Мне нужно извлечь последний бит из поля после последнего], чтобы положить его в таблицу.
Я пытался это, но это не работает...
select
SUBSTRING(BUG.CloseDescription,0,PATINDEX(']',bug.CloseDescription)) as myString
from Bug
Есть идеи?
Спасибо
2 ответа
select
right(BUG.CloseDescription,charindex(']',reverse(BUG.CloseDescription))-1)
from Bug
declare @field varchar(100)
set @field = 'test [2012-02-10 10:00] wibble'
select right(@field, charindex('[',@field))
или чтобы получить дату
declare @field varchar(100)
set @field = 'test [2012-02-10 10:00] wibble'
select substring(@field, charindex('[',@field)+1, charindex(']',@field)-charindex('[',@field)-1)