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

Откуда: дровишки?
Сообщений: 6067
Наверняка задачка простая, просто не хватает знаний.

Есть запрос
select
	t1.id,
	t1.name,
	isnull(a.b.value('percent', 'varchar(10)'), '') as 'percent'
from
	t1
	join t2 on t1.id = t2.id
	cross apply t2.data.nodes('t2/percents/percent') a(b)

На выходе получаю таблицу вида
id name percent
1 Первое значение 25%
1 Первое значение 50%
1 Первое значение 75%
1 Первое значение 100%
2 Второе значение 33%
2 Второе значение 66%
2 Второе значение 100%

А мне нужно превратить её в таблицу вида
id name percent
1 Первое значение 25%;50%;75%;100%
2 Второе значение 33%;66%;100%


Нашёл вариант решения с курсором, но он для фиксированного числа значение в столбце percent, а у меня там произвольное число значений.
Как можно склеить значения в 3ем столбце, сгруппировав данные по 1 и 2 столбцам?
21 янв 14, 17:31    [15448297]     Ответить | Цитировать Сообщить модератору
 Re: Склеить значения одного поля выборки  [new]
факю1
Guest
brbrbr,

https://www.sql.ru/faq/faq_topic.aspx?fid=731 ?
21 янв 14, 17:54    [15448416]     Ответить | Цитировать Сообщить модератору
 Re: Склеить значения одного поля выборки  [new]
ilya80let
Member

Откуда:
Сообщений: 24
может примитивно, но я бы делал примерно так :
select * from (select t.name, case when t.percent = 25% then t.percent end p1, case when t.percent = 50% then t.percent end p2 from youttable t) t1 group by t1.name

потом просто склеил уже p1, p2 и т.д.
P.S. Можно наверное через pivot вместо case.
21 янв 14, 17:59    [15448448]     Ответить | Цитировать Сообщить модератору
 Re: Склеить значения одного поля выборки  [new]
brbrbr
Member

Откуда: дровишки?
Сообщений: 6067
факю1
brbrbr,

https://www.sql.ru/faq/faq_topic.aspx?fid=731 ?

Спасибо, похоже это именно то что нужно.
21 янв 14, 18:05    [15448479]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить