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

Откуда: Minsk
Сообщений: 22
Как вывести последнее слово из строки с помощью функции RIGHT?
18 окт 15, 16:17    [18293703]     Ответить | Цитировать Сообщить модератору
 Re: Функция RIGHT  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4539
zak820, T-SQL: RIGHT, LEFT, SUBSTRING and CHARINDEX Functions
18 окт 15, 17:05    [18293813]     Ответить | Цитировать Сообщить модератору
 Re: Функция RIGHT  [new]
zak820
Member

Откуда: Minsk
Сообщений: 22
Работает правильно только, когда в строке одно слово
RIGHT(JobTitle,charindex(' ',JobTitle+' '))
18 окт 15, 17:16    [18293835]     Ответить | Цитировать Сообщить модератору
 Re: Функция RIGHT  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4539
zak820, для всего остального есть мозг программиста :) и, как вариант - функция REVERSE (Transact-SQL)... и другие функции работы со строками
18 окт 15, 17:24    [18293859]     Ответить | Цитировать Сообщить модератору
 Re: Функция RIGHT  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21249
Для поставленной задачи лучше подходит SUBSTRING_INDEX()
18 окт 15, 18:25    [18293980]     Ответить | Цитировать Сообщить модератору
 Re: Функция RIGHT  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31962
Akina
Для поставленной задачи лучше подходит SUBSTRING_INDEX()
Нету такой.
Уже ответили правильно: мозг программиста -> REVERSE + LEFT
18 окт 15, 18:29    [18293985]     Ответить | Цитировать Сообщить модератору
 Re: Функция RIGHT  [new]
zak820
Member

Откуда: Minsk
Сообщений: 22
как это слепить reverse+left+reverse?

SELECT JobTitle, REVERSE(JobTitle) AS Temp1, LEFT(Temp1,charindex(' ',Temp1+' ')) as Temp2, REVERSE(Temp2) as LastWord
FROM HumanResources.Employee --так не работает.
18 окт 15, 18:54    [18294023]     Ответить | Цитировать Сообщить модератору
 Re: Функция RIGHT  [new]
Alex Choo
Member

Откуда: г. Раменское
Сообщений: 44
zak820
как это слепить reverse+left+reverse?

SELECT JobTitle, REVERSE(JobTitle) AS Temp1, LEFT(Temp1,charindex(' ',Temp1+' ')) as Temp2, REVERSE(Temp2) as LastWord
FROM HumanResources.Employee --так не работает.


примерно так...

DECLARE @fio VARCHAR(100)
SET @fio = 'Иванов Иван Иванович'
--SET @fio = 'Иванов' -- проверка на одно слово
--SET @fio = '' -- проверка на пустую фразу
SELECT @fio, REVERSE(LEFT(REVERSE(@fio), CHARINDEX(' ', REVERSE(@fio) + ' ', 1) - 1))
18 окт 15, 19:17    [18294082]     Ответить | Цитировать Сообщить модератору
 Re: Функция RIGHT  [new]
zak820
Member

Откуда: Minsk
Сообщений: 22
Alex Choo, спасибо.
18 окт 15, 19:34    [18294145]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить