Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 вывести текст  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
подскажите, плз, как вывести нужный мне текст между 2мя символами - запятыми. вся строка: фы123,авп456tryeytr567,куе,111 я использую функции substring и patindex, но не полностью получается...

SELECT SUBSTRING(Name, PATINDEX('%,%', Name)+1, PATINDEX('%,%', Name))
FROM dbo.Table44

но выводит справа не те данные. после первой запятой выводится строка (но не до конца, часть) и даже с запятыми, то есть я неправильно учитываю вторую запятую. в функции subsrting я указываю начинать с ' , ' и не пойму как указать последний параметр, чтобы выводить до след ' , '.
27 ноя 15, 14:03    [18481513]     Ответить | Цитировать Сообщить модератору
 Re: вывести текст  [new]
MrVoid
Member

Откуда:
Сообщений: 333
seeerg_23,

Используйте SQL CLR с его регулярками.
27 ноя 15, 14:06    [18481530]     Ответить | Цитировать Сообщить модератору
 Re: вывести текст  [new]
Glory
Member

Откуда:
Сообщений: 104751
seeerg_23
но выводит справа не те данные. после первой запятой выводится строка (но не до конца, часть) и даже с запятыми, то есть я неправильно учитываю вторую запятую. в функции subsrting я указываю начинать с ' , ' и не пойму как указать последний параметр, чтобы выводить до след ' , '.

Ищите 1ю запятую
Выбираете подстроку от позиции 1ой запятой до конца строки
В выбранной подстроке опять ищите 1ю запятую
Выбираете подстроку от начала до позиции этой запятой
27 ноя 15, 14:06    [18481533]     Ответить | Цитировать Сообщить модератору
 Re: вывести текст  [new]
iap
Member

Откуда: Москва
Сообщений: 47052
Glory
seeerg_23
но выводит справа не те данные. после первой запятой выводится строка (но не до конца, часть) и даже с запятыми, то есть я неправильно учитываю вторую запятую. в функции subsrting я указываю начинать с ' , ' и не пойму как указать последний параметр, чтобы выводить до след ' , '.

Ищите 1ю запятую
Выбираете подстроку от позиции 1ой запятой до конца строки
В выбранной подстроке опять ищите 1ю запятую
Выбираете подстроку от начала до позиции этой запятой
Причём, это лучше делать вложенными CHARINDEX с тремя параметрами (третий задаёт начало поиска для второй запятой)
27 ноя 15, 14:33    [18481729]     Ответить | Цитировать Сообщить модератору
 Re: вывести текст  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
Glory
seeerg_23
но выводит справа не те данные. после первой запятой выводится строка (но не до конца, часть) и даже с запятыми, то есть я неправильно учитываю вторую запятую. в функции subsrting я указываю начинать с ' , ' и не пойму как указать последний параметр, чтобы выводить до след ' , '.

Ищите 1ю запятую
Выбираете подстроку от позиции 1ой запятой до конца строки
В выбранной подстроке опять ищите 1ю запятую
Выбираете подстроку от начала до позиции этой запятой


пример можно?
27 ноя 15, 14:34    [18481732]     Ответить | Цитировать Сообщить модератору
 Re: вывести текст  [new]
iiyama
Member

Откуда:
Сообщений: 642
seeerg_23,

поиск рулит
27 ноя 15, 14:35    [18481752]     Ответить | Цитировать Сообщить модератору
 Re: вывести текст  [new]
Glory
Member

Откуда:
Сообщений: 104751
seeerg_23
пример можно?

Это и есть алгоритм ваших действий. Вы умеете реализовывать алгоритмы ?
27 ноя 15, 14:45    [18481847]     Ответить | Цитировать Сообщить модератору
 Re: вывести текст  [new]
o-o
Guest
SELECT SUBSTRING(Name, PATINDEX('%,%', Name) + 1, 
                 PATINDEX('%,%', SUBSTRING(Name, PATINDEX('%,%', Name) + 1, len(Name))) - 1)

но не обрабатывает ситуации, когда в строке менее двух запятых
27 ноя 15, 15:03    [18482008]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить