Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
KJey Member Откуда: Сообщений: 2 |
Доброго времени суток. Есть некий в виде "1,3,5,8,15,126" - его нужно преобразовать (желательно запросом) в столбец: 1 3 5... чтобы потом этот столбец можно было связать с другой таблицей. Даже не знаю, что именно искать, и как это можно сделать, куда податься. P.S. SQL учить начал недавно, просьба тапочками не кидать=) Заранее спасибо=) |
22 дек 16, 11:15 [20035610] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47050 |
MS SQL 2016 STRING_SPLIT (Transact-SQL) |
22 дек 16, 11:34 [20035702] Ответить | Цитировать Сообщить модератору |
KJey Member Откуда: Сообщений: 2 |
iap, у меня sql 2008. aleks2, насколько понял, это функция? Где можно более подробно узнать, как ею пользоваться? Ещё ни разу с ними не сталкивался. |
22 дек 16, 11:47 [20035749] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8326 |
KJey,
Так же, как и любой другой функцией. Передать параметры, выполнить запрос. |
||
22 дек 16, 12:11 [20035904] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47050 |
Здесь также много раз приводилось очень короткое решение с помощью XML. (Замена запятых на теги и выборка узлов) Парсинг строки из таблицы |
||
22 дек 16, 12:33 [20036006] Ответить | Цитировать Сообщить модератору |
aleks2
Guest |
select * from [dbo].[f_nStrToTableEx]('x;y;z', ';'); |
||
22 дек 16, 12:47 [20036090] Ответить | Цитировать Сообщить модератору |
MSSQLAndDotNet Member Откуда: Сообщений: 10398 |
PIVOT? |
22 дек 16, 13:22 [20036356] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |