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

Откуда:
Сообщений: 6
Доброго времени суток, сразу оговорюсь, тему [url=]https://www.sql.ru/forum/actualthread.aspx?tid=894675[/url] читал
Но у меня есть тэйбл: ид, ид скила, описалово скила.
Нужен селект, чтоб одному ид несколько скилов через запятую были, вот сампл тэйбла (без мусора)
"cid""exper_id""experience"
"3""1""2D"
"3""2""AND"
"3""3""ASSEMBLY"
"3""4""ASSISTANT"
"3""5""COMPRESSION"
"3""6""ENGINEER"
"3""7""IS"
"3""8""IT"
"3""9""LABVIEW"
"3""10""MECHANICAL"
"3""11""OPTICAL"
"3""12""SOFTWARE"
"3""13""SYSTEMS"
"3""14""TEST"
"3""15""TOMOGRAPHY"
"4""16""ACCESS"
"4""17""ADMINISTRATION"
"4""18""AND"
"4""19""ATE"
"4""20""BUS"
"4""21""CC:MAIL"
"4""22""COM"
"4""23""CTI"
"4""24""DIRECTOR"
"4""25""ECO"
"4""26""ECR"
"4""27""EXPRESS"
"4""28""GUI"
"4""29""ISO"
"4""30""LAN"


а нужно получить

"cid""experience"
"3""2D AND ASSEMBLY и т.п."
"4""ECR ECO GUI ISO и т.п."
22 ноя 11, 16:19    [11638795]     Ответить | Цитировать Сообщить модератору
 Re: Объединенние нескольких строк в одну  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
CloudDBA, а что именно из той темы непонятно?
22 ноя 11, 16:29    [11638896]     Ответить | Цитировать Сообщить модератору
 Re: Объединенние нескольких строк в одну  [new]
iap
Member

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

а про двойные кавычки расскажите...
Или, может, у Вас версия сервера старая?
22 ноя 11, 16:34    [11638944]     Ответить | Цитировать Сообщить модератору
 Re: Объединенние нескольких строк в одну  [new]
CloudDBA
Member

Откуда:
Сообщений: 6
Двойные кавычки это всего лишь CSV так прочитался при вставке в тему =) сикуэл 2008 р2
а сложность, как это сделать не используя функции...
22 ноя 11, 16:42    [11639022]     Ответить | Цитировать Сообщить модератору
 Re: Объединенние нескольких строк в одну  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
CloudDBA, в статье про сложение символьных полей есть примеры без функций
22 ноя 11, 16:50    [11639099]     Ответить | Цитировать Сообщить модератору
 Re: Объединенние нескольких строк в одну  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
CloudDBA
Двойные кавычки это всего лишь CSV так прочитался при вставке в тему =) сикуэл 2008 р2
а сложность, как это сделать не используя функции...
А чем не устраивает ответ SomewhereSomehow по ссылке,
которую Вы сами же и дали?

С двойными кавычками, кстати, дополнительная морока будет.
22 ноя 11, 16:52    [11639107]     Ответить | Цитировать Сообщить модератору
 Re: Объединенние нескольких строк в одну  [new]
trew
Member

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

https://www.sql.ru/faq/faq_topic.aspx?fid=731
22 ноя 11, 17:02    [11639192]     Ответить | Цитировать Сообщить модератору
 Re: Объединенние нескольких строк в одну  [new]
CloudDBA
Member

Откуда:
Сообщений: 6
С кавычками я разобрался, а вот эта вещь ->for xml path('') меня смущает, хотелось бы обойтись ср-вами АНСИ сикуэла, а так в принцепе все работает (записей просто 950000)
22 ноя 11, 17:05    [11639216]     Ответить | Цитировать Сообщить модератору
 Re: Объединенние нескольких строк в одну  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
CloudDBA
С кавычками я разобрался, а вот эта вещь ->for xml path('') меня смущает, хотелось бы обойтись ср-вами АНСИ сикуэла, а так в принцепе все работает (записей просто 950000)

Напиши себе один раз агрегатную функцию и радуйся

З.Ы.
А кто такая "сикуэла"?
22 ноя 11, 17:40    [11639586]     Ответить | Цитировать Сообщить модератору
 Re: Объединенние нескольких строк в одну  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Зайцев Фёдор
CloudDBA
С кавычками я разобрался, а вот эта вещь ->for xml path('') меня смущает, хотелось бы обойтись ср-вами АНСИ сикуэла, а так в принцепе все работает (записей просто 950000)

Напиши себе один раз агрегатную функцию и радуйся

З.Ы.
А кто такая "сикуэла"?

Это просто одни любят говорить "эс-кью-эль", другие "сиквел", так шо "сикуэл" тоже вполне может существовать .
22 ноя 11, 18:11    [11639836]     Ответить | Цитировать Сообщить модератору
 Re: Объединенние нескольких строк в одну  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
CloudDBA
С кавычками я разобрался, а вот эта вещь ->for xml path('') меня смущает, хотелось бы обойтись ср-вами АНСИ сикуэла, а так в принцепе все работает (записей просто 950000)
Во-первых, если не ошибаюсь, XML включён в стандарт ANSI SQL 2008.
Во-вторых, если так настаиваете, возьмите рекурсивное CTE - и вуаля! Но будет не быстро.
22 ноя 11, 20:32    [11640604]     Ответить | Цитировать Сообщить модератору
 Re: Объединенние нескольких строк в одну  [new]
invm
Member

Откуда: Москва
Сообщений: 9835
Зайцев Фёдор
Напиши себе один раз агрегатную функцию и радуйся.

Кастомная строковая агрегатная функция имеет существенный недостаток -- невозможно задать порядок конкатенации.

CloudDBA, как вариант, завести рядом агрегированную таблицу и поддерживать ее триггером.
22 ноя 11, 21:33    [11640889]     Ответить | Цитировать Сообщить модератору
 Re: Объединенние нескольких строк в одну  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Зайцев Фёдор
CloudDBA
С кавычками я разобрался, а вот эта вещь ->for xml path('') меня смущает, хотелось бы обойтись ср-вами АНСИ сикуэла, а так в принцепе все работает (записей просто 950000)

Напиши себе один раз агрегатную функцию и радуйся

З.Ы.
А кто такая "сикуэла"?
агрегатная функция - это ANSI SQL, да?
23 ноя 11, 09:21    [11642036]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить