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

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

Есть в AD такая вещь у юзера - canonicalName. Строка представляет собой вид DomainName/OU1/OU2/.../OUn/UserName.
Юзеров много, по сему есть таблица где строка таблицы == canonicalName юзера.
Нужно порезать как-то эту конструкцию в таблицу вида [parentOU][childOU].

В сети есть примеры обратных действий, прямых примеров не нашел (может руки кривые). Прошу совета по подходу.
31 янв 13, 16:11    [13857990]     Ответить | Цитировать Сообщить модератору
 Re: Порезать строку вида path на группы parent-child  [new]
Glory
Member

Откуда:
Сообщений: 104751
On1yMe
Прошу совета по подходу.

Распарсить строку с разделителем / - десятки вариантов
Для каждой получаемой записи добавить еще поле со значением от предыдущего элемента.
31 янв 13, 16:35    [13858143]     Ответить | Цитировать Сообщить модератору
 Re: Порезать строку вида path на группы parent-child  [new]
Exproment
Member

Откуда:
Сообщений: 416
Ну например как-то так:
select      Row_Number() OVER (order by TT.ID, GLFS.ID)
            ,ParentID = case when GLFS.ID != 1 
                                         then Row_Number() OVER (order by TT.ID) - 1
                                   else null end
            ,GLFS.Value
from     TestTable TT
            cross apply dbo.GetListValueFromString(TT.Stroke, ';') as GLFS

где GetListFromString - функция которая парсит строку через разделитель И выдает два поля: (ID, подстрока), где ID - порядковый номер подстроки в строке. Примеров такой функции море - ищите.
1 фев 13, 10:50    [13860591]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить