| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS SQL Server > Как распарсить строку? |
| Автор: Feller 24.5.2011, 17:31 | ||
Есть столбец в нём значение FIO=1; LASTINDIC=0; и.т.д как можно его распарсить чтоб FIO было название столбца а то что до точки с запятой его значение.Я сделал такой запрос но он не множко нетак работает например если строки LASTINDIC=0; небудет он выдаст ошибку пожалуйста помогите
|
| Автор: Akina 24.5.2011, 17:38 |
| Описывайте задачу, а не свою попытку её решать. |
| Автор: Feller 24.5.2011, 17:48 |
| Akina, есть колонка pmsg оно содержит всебе данные DEBT_AMOUNT=-300.00; FIO=1; LASTINDIC=0; LASTDATE=19.05.2011; как его правильно распарсить чтоб вытащить его значения ? |
| Автор: Akina 24.5.2011, 19:47 | ||
| Парсить каждый параметр надо независимо. Если в строке есть параметр PARAMETER, то вернуть его значение, иначе ноль (или пустую строку) или NULL.
Значение берётся как подстрока. Начало подстроки - после знака "=". Его положение = CHARINDEX('PARAMETER=', pmsg)+LEN('PARAMETER='). Конец подстроки - первый ";" после начала. Т.е. CHARINDEX(';', pmsg, CHARINDEX('PARAMETER', pmsg)) Соответственно длина значения = Конец_подстроки - Начало_подстроки. |
| Автор: Feller 26.5.2011, 08:38 |
| Akina, Спасибо, |
| Автор: Akina 26.5.2011, 09:14 |
| Если эта операция выполяется часто - задумайтесь о написании пользовательской функции. Если, кроме того, ещё и критично по времени выполнения - то UDF. |