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

Откуда: ТУЛЫП
Сообщений: 877
Прошу прощения за наглость, но не могли бы вы поделить функцией (UDF) для конкатенации ячеек одного столбца таблицы в одну строку?
Когда то видела в интернете, но не забрала, а сейчас не могу найти.
Добра тебе, добрый друг.
27 май 15, 18:55    [17697808]     Ответить | Цитировать Сообщить модератору
 Re: Функция конкатенации для MS SQL 2008  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Используйте XML - http://habrahabr.ru/post/200120/
27 май 15, 18:58    [17697820]     Ответить | Цитировать Сообщить модератору
 Re: Функция конкатенации для MS SQL 2008  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
May12
Прошу прощения за наглость, но не могли бы вы поделить функцией (UDF) для конкатенации ячеек одного столбца таблицы в одну строку?
Когда то видела в интернете, но не забрала, а сейчас не могу найти.
Добра тебе, добрый друг.
FAQ
Здесь сотни тем про это. Достаточно использовать местный поиск.
27 май 15, 20:45    [17698178]     Ответить | Цитировать Сообщить модератору
 Re: Функция конкатенации для MS SQL 2008  [new]
May12
Member

Откуда: ТУЛЫП
Сообщений: 877
iap, везде все примеры с группировкой. =(( а мне бы без и чтобы просто передать в функцию наименование поля (ну разделитель) и получить сконкатенированную строку. Пока ничего не нашла.
28 май 15, 09:33    [17699680]     Ответить | Цитировать Сообщить модератору
 Re: Функция конкатенации для MS SQL 2008  [new]
Glory
Member

Откуда:
Сообщений: 104760
May12
а мне бы без и чтобы просто передать в функцию наименование поля (ну разделитель) и получить сконкатенированную строку. Пока ничего не нашла.

Т.е. ссылку на FAQ так и не открыли что ли ?
28 май 15, 09:36    [17699691]     Ответить | Цитировать Сообщить модератору
 Re: Функция конкатенации для MS SQL 2008  [new]
May12
Member

Откуда: ТУЛЫП
Сообщений: 877
AlanDenton,

спасибо. Вот это по Вашей ссылке помогло:
SELECT Chars = STUFF(CAST((
    SELECT [text()] = ', ' + [Char]
    FROM dbo.Chars
    FOR XML PATH(''), TYPE) AS VARCHAR(100)), 1, 2, '')
28 май 15, 09:37    [17699702]     Ответить | Цитировать Сообщить модератору
 Re: Функция конкатенации для MS SQL 2008  [new]
May12
Member

Откуда: ТУЛЫП
Сообщений: 877
Glory, открыла. Но, повторюсь, там примеры с группировкой.
28 май 15, 09:40    [17699717]     Ответить | Цитировать Сообщить модератору
 Re: Функция конкатенации для MS SQL 2008  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31439
May12
а мне бы без и чтобы просто передать в функцию наименование поля
В функцию (UDF) нельзя передать имя поля, запрещено разработчиками сиквела.

Какой ламер вам так задачу поставил? :-(
May12
Прошу прощения за наглость, но не могли бы вы поделить функцией (UDF) для конкатенации ячеек одного столбца таблицы в одну строку?
Когда то видела в интернете, но не забрала, а сейчас не могу найти.
Или, может, вы читали про агрегирующую функцию CLR?
28 май 15, 09:40    [17699718]     Ответить | Цитировать Сообщить модератору
 Re: Функция конкатенации для MS SQL 2008  [new]
Glory
Member

Откуда:
Сообщений: 104760
May12
Но, повторюсь, там примеры с группировкой.

И что ? У вас алергия на GROUP BY ?
28 май 15, 09:41    [17699725]     Ответить | Цитировать Сообщить модератору
 Re: Функция конкатенации для MS SQL 2008  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20601
May12
iap, везде все примеры с группировкой. =(( а мне бы без и чтобы просто передать в функцию наименование поля (ну разделитель) и получить сконкатенированную строку.

Конкатенация значений поля разных записей - это ОБЯЗАТЕЛЬНО группировка. Без вариантов. Даже если она выполняется неявно (FOR XML).
28 май 15, 09:51    [17699780]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить