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

Откуда:
Сообщений: 2
Доброго времени суток.
Есть некий в виде "1,3,5,8,15,126" -
его нужно преобразовать (желательно запросом) в столбец:
1
3
5...
чтобы потом этот столбец можно было связать с другой таблицей.
Даже не знаю, что именно искать, и как это можно сделать, куда податься.
P.S. SQL учить начал недавно, просьба тапочками не кидать=)
Заранее спасибо=)
22 дек 16, 11:15    [20035610]     Ответить | Цитировать Сообщить модератору
 Re: Как из списка сделать столбец sql  [new]
aleks2
Guest
ALTER function [dbo].[f_nStrToTableEx](@str nvarchar(4000), @delimiter nvarchar(64)=',')
returns table as
return(
WITH 
  l as (select ld = LEN(N'|' + @delimiter + N'|') - 2, [s+d] = @str + @delimiter + N'|', ls = len(@str) )
, str_nums ( n1, n2, Number ) AS 
                                ( 
                                select  1 - ld as n1, charindex( @delimiter, [s+d] ) as n2, 0 as Number from l where @str is not null
                                UNION ALL 
                                select n2 as n1, charindex (@delimiter, [s+d], n2 + ld ) as n2, Number + 1 as Number
                                from str_nums cross join l
                                WHERE n2 < ls
                                ) 
select substring( @str, n1 + ld, n2 - n1 - ld ) as Value, Number, n1 + 1 as StartPosition FROM str_nums cross join l
)
22 дек 16, 11:17    [20035631]     Ответить | Цитировать Сообщить модератору
 Re: Как из списка сделать столбец sql  [new]
iap
Member

Откуда: Москва
Сообщений: 47050
MS SQL 2016

STRING_SPLIT (Transact-SQL)
22 дек 16, 11:34    [20035702]     Ответить | Цитировать Сообщить модератору
 Re: Как из списка сделать столбец sql  [new]
KJey
Member

Откуда:
Сообщений: 2
iap, у меня sql 2008.
aleks2, насколько понял, это функция?
Где можно более подробно узнать, как ею пользоваться?
Ещё ни разу с ними не сталкивался.
22 дек 16, 11:47    [20035749]     Ответить | Цитировать Сообщить модератору
 Re: Как из списка сделать столбец sql  [new]
Владислав Колосов
Member

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

автор
как ею пользоваться

Так же, как и любой другой функцией. Передать параметры, выполнить запрос.
22 дек 16, 12:11    [20035904]     Ответить | Цитировать Сообщить модератору
 Re: Как из списка сделать столбец sql  [new]
iap
Member

Откуда: Москва
Сообщений: 47050
KJey
iap, у меня sql 2008.
aleks2, насколько понял, это функция?
Где можно более подробно узнать, как ею пользоваться?
Ещё ни разу с ними не сталкивался.
Функция, которая делит строку на слова
Здесь также много раз приводилось очень короткое решение с помощью XML.
(Замена запятых на теги и выборка узлов)
Парсинг строки из таблицы
22 дек 16, 12:33    [20036006]     Ответить | Цитировать Сообщить модератору
 Re: Как из списка сделать столбец sql  [new]
aleks2
Guest
KJey
iap, у меня sql 2008.
aleks2, насколько понял, это функция?
Где можно более подробно узнать, как ею пользоваться?
Ещё ни разу с ними не сталкивался.


select * from [dbo].[f_nStrToTableEx]('x;y;z', ';');
22 дек 16, 12:47    [20036090]     Ответить | Цитировать Сообщить модератору
 Re: Как из списка сделать столбец sql  [new]
MSSQLAndDotNet
Member

Откуда:
Сообщений: 10398
PIVOT?
22 дек 16, 13:22    [20036356]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить