Обрезание части текста в строке

hohot
Дата: 14.02.2013 11:22:40
MSSQL 2012.
Друзья, снова понадобилась ваша помощь.
Есть строка вида: CN=AD.Tel,OU=TEST,OU=GROUPS,DC=office,DC=domain,DC=ru
Задача следующая: нужно в отчете в строке вывести только то что находится между символами 'CN=' и первой запятой.
Подскажите, пожалуйста, хотя бы какие функции точно потребуются для решения задачи, ну в идеале бы кусочек кода.
Заранее премного благодарен!
Knyazev Alexey
Дата: 14.02.2013 11:23:45
substring/patindex/stuff
iap
Дата: 14.02.2013 13:46:53
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.02.2013 13:51:18
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);
Гость333
Дата: 14.02.2013 13:58:45
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);
hohot
Дата: 14.02.2013 14:34:13
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, особое) спасибо!