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

Откуда:
Сообщений: 44
Приветствую.

Не могу найти информацию.


Иметтся строка:

'1,2,3,4,5'

Как из нее получить столбец:

1
2
3
4
5

?


Нужно что-то аналогичное UNNEST в PG или table() oracle


Подскажите пожалуйста.
28 авг 19, 15:54    [21959196]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать массив в столбец?  [new]
qqq_2
Member

Откуда:
Сообщений: 44
количество значений через запятую произвольное от 1 до 100000
28 авг 19, 15:54    [21959197]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать массив в столбец?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36697
string_split
28 авг 19, 15:56    [21959199]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать массив в столбец?  [new]
qqq_2
Member

Откуда:
Сообщений: 44
Гавриленко Сергей Алексеевич
string_split


2005-й SQL Server не находит такой штуки
28 авг 19, 16:01    [21959208]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать массив в столбец?  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
Функция, которая делит строку на слова
28 авг 19, 16:21    [21959235]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать массив в столбец?  [new]
4d_monster
Member

Откуда: Москва
Сообщений: 1615
qqq_2
Гавриленко Сергей Алексеевич
string_split


2005-й SQL Server не находит такой штуки Картинка с другого сайта.


так и UNNEST в PG 8.3 не было Картинка с другого сайта.
28 авг 19, 16:24    [21959239]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать массив в столбец?  [new]
invm
Member

Откуда: Москва
Сообщений: 9128
qqq_2,

declare @s varchar(max) = '1,2,3,4,5'

select
 b.n.value('@n', 'int')
from
 (select cast('<item n = "' + replace(@s, ',', '"/><item n="') + '"/>' as xml)) a(x) cross apply
 a.x.nodes('item') b(n);
28 авг 19, 16:27    [21959244]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать массив в столбец?  [new]
qqq_2
Member

Откуда:
Сообщений: 44
invm
qqq_2,

declare @s varchar(max) = '1,2,3,4,5'

select
 b.n.value('@n', 'int')
from
 (select cast('<item n = "' + replace(@s, ',', '"/><item n="') + '"/>' as xml)) a(x) cross apply
 a.x.nodes('item') b(n);



спасибо, то что надо!
28 авг 19, 16:28    [21959247]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать массив в столбец?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7407
Странно, что этой темы нет в FAQ, как и обратного преобразования. Довольно популярна.
29 авг 19, 11:21    [21959654]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить