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

Откуда:
Сообщений: 6
MSSQL 2012.
Друзья, снова понадобилась ваша помощь.
Есть строка вида: CN=AD.Tel,OU=TEST,OU=GROUPS,DC=office,DC=domain,DC=ru
Задача следующая: нужно в отчете в строке вывести только то что находится между символами 'CN=' и первой запятой.
Подскажите, пожалуйста, хотя бы какие функции точно потребуются для решения задачи, ну в идеале бы кусочек кода.
Заранее премного благодарен!
14 фев 13, 11:22    [13924804]     Ответить | Цитировать Сообщить модератору
 Re: Обрезание части текста в строке  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
substring/patindex/stuff
14 фев 13, 11:23    [13924812]     Ответить | Цитировать Сообщить модератору
 Re: Обрезание части текста в строке  [new]
iap
Member

Откуда: Москва
Сообщений: 47198
DECLARE @S VARCHAR(100)='CN=AD.Tel,OU=TEST,OU=GROUPS,DC=office,DC=domain,DC=ru';
SELECT SUBSTRING(@S,CHARINDEX('CN=',@S)+3,CHARINDEX(',',@S,CHARINDEX('CN=',@S))-CHARINDEX('CN=',@S)-3);
14 фев 13, 13:46    [13926060]     Ответить | Цитировать Сообщить модератору
 Re: Обрезание части текста в строке  [new]
iap
Member

Откуда: Москва
Сообщений: 47198
iap
DECLARE @S VARCHAR(100)='CN=AD.Tel,OU=TEST,OU=GROUPS,DC=office,DC=domain,DC=ru';
SELECT SUBSTRING(@S,CHARINDEX('CN=',@S)+3,CHARINDEX(',',@S,CHARINDEX('CN=',@S))-CHARINDEX('CN=',@S)-3);
А если 'CN=' вообще нет?! Тогда так:
DECLARE @S VARCHAR(100)='CN=AD.Tel,OU=TEST,OU=GROUPS,DC=office,DC=domain,DC=ru';
SELECT SUBSTRING(@S,NULLIF(CHARINDEX('CN=',@S),0)+3,CHARINDEX(',',@S,CHARINDEX('CN=',@S))-CHARINDEX('CN=',@S)-3);
14 фев 13, 13:51    [13926100]     Ответить | Цитировать Сообщить модератору
 Re: Обрезание части текста в строке  [new]
Гость333
Member

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

А если нет запятой после "CN=" ? Тогда так:
DECLARE @S VARCHAR(100)='CN=AD.Tel';
SELECT SUBSTRING(@S,NULLIF(CHARINDEX('CN=',@S),0)+3,NULLIF(CHARINDEX(',',@S,CHARINDEX('CN=',@S)),0)-CHARINDEX('CN=',@S)-3);
14 фев 13, 13:58    [13926144]     Ответить | Цитировать Сообщить модератору
 Re: Обрезание части текста в строке  [new]
hohot
Member

Откуда:
Сообщений: 6
iap
DECLARE @S VARCHAR(100)='CN=AD.Tel,OU=TEST,OU=GROUPS,DC=office,DC=domain,DC=ru';
SELECT SUBSTRING(@S,CHARINDEX('CN=',@S)+3,CHARINDEX(',',@S,CHARINDEX('CN=',@S))-CHARINDEX('CN=',@S)-3);


Супер, самое то!
Огромное всем (и вам, iap, особое) спасибо!
14 фев 13, 14:34    [13926444]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить