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

Откуда:
Сообщений: 439
Добрый день!

Помогите с запросом.

Нужно выбрать все символы до первого символа \ в строке. Учитывая то, что кол-во символов с конца могут быть разные.

Например

Данные:
\Отдел\Группа\Подгруппа\Бухгалтер
или
\Отдел\Группа\Подгруппа\Администратор

Результат должен быть:
Бухгалтер
или
Администратор
5 апр 12, 19:52    [12372771]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать сиволы до первого символа  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
ТАРАКАН,

reverse + charindex
5 апр 12, 19:59    [12372801]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать сиволы до первого символа  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31965
ТАРАКАН
Нужно выбрать все символы до первого символа \ в строке.
То есть с конца строки до первого символа \ в строке?

right(field, charindex('\', reverse(field))
5 апр 12, 20:00    [12372808]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать сиволы до первого символа  [new]
Alexander Karavaev
Member

Откуда: Москва
Сообщений: 40
alexeyvg

right(field, charindex('\', reverse(field))


А точнее:
select right(field, charindex('\', reverse(field)) - 1)
5 апр 12, 20:44    [12372989]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать сиволы до первого символа  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Alexander Karavaev
alexeyvg
right(field, charindex('\', reverse(field))


А точнее:
select right(field, charindex('\', reverse(field)) - 1)
А если field='Администратор'?
5 апр 12, 21:25    [12373118]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать сиволы до первого символа  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
iap
А если field='Администратор'?

На выбор:
DECLARE @field VARCHAR(MAX)= 'Administrator'
SELECT  RIGHT(@field,NULLIF(CHARINDEX('\',REVERSE(@field),0),0)-1)
SELECT  RIGHT(@field,ISNULL(NULLIF(CHARINDEX('\',REVERSE(@field),0),0)-1,LEN(@field)))

5 апр 12, 22:39    [12373370]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать сиволы до первого символа  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
kDnZP
iap
А если field='Администратор'?

На выбор:
DECLARE @field VARCHAR(MAX)= 'Administrator'
SELECT  RIGHT(@field,NULLIF(CHARINDEX('\',REVERSE(@field),0),0)-1)
SELECT  RIGHT(@field,ISNULL(NULLIF(CHARINDEX('\',REVERSE(@field),0),0)-1,LEN(@field)))

Я надеялся на ответ Alexander Karavaev
6 апр 12, 09:18    [12374069]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать сиволы до первого символа  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31965
iap
Alexander Karavaev
пропущено...


А точнее:
select right(field, charindex('\', reverse(field)) - 1)

А если field='Администратор'?
Тогда выводить ничего не нужно, ведь в ТЗ написано: "Нужно выбрать все символы до первого символа \ в строке"
:-)
6 апр 12, 09:51    [12374190]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать сиволы до первого символа  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
alexeyvg
iap
пропущено...
А если field='Администратор'?
Тогда выводить ничего не нужно, ведь в ТЗ написано: "Нужно выбрать все символы до первого символа \ в строке"
:-)
Дык ведь у Alexander Karavaev получается RIGHT(@S,-1) - облом с сообщением об ошибке
6 апр 12, 10:00    [12374232]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать сиволы до первого символа  [new]
ТАРАКАН
Member

Откуда:
Сообщений: 439
Всем большое Спасибо!
6 апр 12, 10:30    [12374404]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать сиволы до первого символа  [new]
Alexander Karavaev
Member

Откуда: Москва
Сообщений: 40
iap
Я надеялся на ответ Alexander Karavaev

Ну, если обязательно от меня, то можно так:
begin try
select right(@field, charindex('\', reverse(@field)) - 1)
end try
begin catch
end catch

7 апр 12, 13:20    [12380023]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать сиволы до первого символа  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Alexander Karavaev
begin try
--
end try begin catch
end catch
Не смешно.
7 апр 12, 17:05    [12380638]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить