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

Откуда:
Сообщений: 265
Подскажите как мне реализовать разбивку 2 слов по пробелу?
8 дек 17, 12:14    [21017706]     Ответить | Цитировать Сообщить модератору
 Re: Разбивка по пробелу  [new]
Добрый Э - Эх
Guest
Pabl0,

а как ты уже пробовал? какие строковые функции в T-SQL изучил?
8 дек 17, 12:25    [21017737]     Ответить | Цитировать Сообщить модератору
 Re: Разбивка по пробелу  [new]
Pabl0
Member

Откуда:
Сообщений: 265
Добрый Э - Эх,



declare @str varchar(max)
set @str=''
select @str=@str+' '+[CardOwner] from 
[Corp.Emg].[dbo].[TemporaryWorkerBankInfo]
SET @str='select '''+replace(ltrim(@str), ' ', ''' as City union all select ''')+''''
exec(@str)
8 дек 17, 13:22    [21017997]     Ответить | Цитировать Сообщить модератору
 Re: Разбивка по пробелу  [new]
Владислав Колосов
Member

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

Разве это разбивка? Вы собираете значения атрибута CardOwner в строку с разделителем - кавычка.
8 дек 17, 13:37    [21018062]     Ответить | Цитировать Сообщить модератору
 Re: Разбивка по пробелу  [new]
Pabl0
Member

Откуда:
Сообщений: 265
SELECT *, left(CardOwner, charindex(' ', CardOwner)-1), RIGHT(CardOwner, charindex(' ', CardOwner)-1)
FROM TemporaryWorkerBankInfo B


Select substring(CardOwner, 1, charindex(' ',CardOwner)-1) as L, substring(CardOwner, charindex(' ',CardOwner)+1, len(CardOwner)-(charindex(' ',CardOwner)+1)) as F
from TemporaryWorkerBankInfo
8 дек 17, 13:39    [21018070]     Ответить | Цитировать Сообщить модератору
 Re: Разбивка по пробелу  [new]
Pabl0
Member

Откуда:
Сообщений: 265
Только ошибку выдает

Функции LEFT или SUBSTRING передан недопустимый параметр длины.
8 дек 17, 13:39    [21018073]     Ответить | Цитировать Сообщить модератору
 Re: Разбивка по пробелу  [new]
aleks222
Guest
Pabl0
Только ошибку выдает

Функции LEFT или SUBSTRING передан недопустимый параметр длины.

charindex(' ', CardOwner)-1


А есть ли у тебя пробел во ВСЕХ строках, дездемона?
8 дек 17, 13:43    [21018092]     Ответить | Цитировать Сообщить модератору
 Re: Разбивка по пробелу  [new]
Владислав Колосов
Member

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

если пробела не будет, то это обвалится.

declare @CardOwner varchar(10) = 'ab';
Select substring(@CardOwner, 1, charindex(' ',@CardOwner)-1) as L, substring(@CardOwner, charindex(' ',@CardOwner)+1, 1000) as F
8 дек 17, 13:43    [21018097]     Ответить | Цитировать Сообщить модератору
 Re: Разбивка по пробелу  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Коллеги, что вы такие сложные сегодня?

SELECT PARSENAME('ПервоеСлово.Второеслово', 2),  PARSENAME('ПервоеСлово.ВтороеCлово', 1)
8 дек 17, 14:10    [21018223]     Ответить | Цитировать Сообщить модератору
 Re: Разбивка по пробелу  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20519
Cammomile, у него разделитель проебл, а не точка... реплейсить?
8 дек 17, 14:34    [21018351]     Ответить | Цитировать Сообщить модератору
 Re: Разбивка по пробелу  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1526
Akina
проебл
Какая интересная очепятка... :)
8 дек 17, 14:37    [21018371]     Ответить | Цитировать Сообщить модератору
 Re: Разбивка по пробелу  [new]
Pabl0
Member

Откуда:
Сообщений: 265
SELECT *, left(CardOwner, charindex(' ', CardOwner)-1), RIGHT(CardOwner, len(CardOwner)-(charindex(' ', CardOwner)-1))  -- тут пробел лишний в начале как убрать?
FROM TemporaryWorkerBankInfo B
8 дек 17, 14:38    [21018383]     Ответить | Цитировать Сообщить модератору
 Re: Разбивка по пробелу  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Akina, конечно. А чего нет то?
8 дек 17, 14:42    [21018417]     Ответить | Цитировать Сообщить модератору
 Re: Разбивка по пробелу  [new]
Владислав Колосов
Member

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

если пробела не будет, то это обвалится.

declare @CardOwner varchar(10) = 'ab';
Select substring(@CardOwner, 1, charindex(' ',@CardOwner)-1) as L, substring(@CardOwner, charindex(' ',@CardOwner)+1, 1000) as F
8 дек 17, 15:19    [21018573]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить