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

Откуда:
Сообщений: 336
День добрый!
Стоит задача написать функцию под 2008 сервер, на вход функции передается список полей(числа,строки) и строка маска ("x1 x2 z123"), где "z123" имена переменных передаваемых в функцию,
вопрос как средствами SQL грамотно организовать сборку строки, получить доступ к переменным по их имени?


Заранее спасибо!
28 май 19, 09:02    [21895362]     Ответить | Цитировать Сообщить модератору
 Re: Собрать строку по параметрам  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
Mixon
вопрос как средствами SQL грамотно организовать сборку строки, получить доступ к переменным по их имени?
Т.к. переменные (параметры) определены зараннее, то нужно просто их использовать.
То есть парсить строку маски, и, если там есть имя переменной, подставлять её в строку результата.
28 май 19, 10:53    [21895437]     Ответить | Цитировать Сообщить модератору
 Re: Собрать строку по параметрам  [new]
Владислав Колосов
Member

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

конструктор запроса удобно создавать с использованием CLR функций. Т.е. разбор параметров и формирование строки запроса выполнять на C#. Вся гибкость ООП у вас в руках.
28 май 19, 12:32    [21895572]     Ответить | Цитировать Сообщить модератору
 Re: Собрать строку по параметрам  [new]
Valery_B
Member

Откуда: Москва
Сообщений: 2018
Mixon,

Вообще, база данных должна работать с данными, а не разбирать строки.
Лучше всего разбирать эти строки на клиенте и передавать их как параметры сторед процедур.

Но, если это сделать это очень хочется, то можно передовать строку в формате Json и использовать "новый" оператор MS SQL - OPENJSON
28 май 19, 12:40    [21895588]     Ответить | Цитировать Сообщить модератору
 Re: Собрать строку по параметрам  [new]
Mixon
Member

Откуда:
Сообщений: 336
У меня SQL Server 2008, есть старый функционал и хотелось его поместить на сервер, что бы проще было поддерживать.
28 май 19, 13:19    [21895642]     Ответить | Цитировать Сообщить модератору
 Re: Собрать строку по параметрам  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
Владислав Колосов
конструктор запроса удобно создавать с использованием CLR функций.
У автора же не конструктор запроса, а простое создание строки.
Типа
return replace(replace(@mask, 'x1', @x1), , 'z123', @z123)
и т.д.
28 май 19, 14:53    [21895803]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить