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

Откуда:
Сообщений: 44
Необходимо составить запрос, в котором в одной строке (ячейке) содержались бы данные из другой таблицы.
"Другая_таблица" содержит 5 строк с данными 1,2,3,4,5. Как получить эти данные в виде 1+2+3+4+5 (12345)?

(select Данные from Другая_таблица) as New - соответственно не катит (для примеров)
21 июл 09, 15:09    [7440789]     Ответить | Цитировать Сообщить модератору
 Re: Запрос  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Сложение символьных полей в запросе
21 июл 09, 15:14    [7440821]     Ответить | Цитировать Сообщить модератору
 Re: Запрос  [new]
Masian
Member

Откуда:
Сообщений: 44
Спасибо. Так и знал, что буит гиморно...
Прада чтоль нет спец. функций? ток свои писать?
21 июл 09, 15:18    [7440850]     Ответить | Цитировать Сообщить модератору
 Re: Запрос  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
Masian
Спасибо. Так и знал, что буит гиморно...
Прада чтоль нет спец. функций? ток свои писать?
Вы похоже не дочитали тынц. Способ с XML PATH очень даже неплох

Цитирую:
loki1984	15 февраля 2007, 12:58	Оценка: N/A
Есть другой способ:

drop table test
go
create table test (id int, txt varchar(20))
go
insert test values (1,'привет')
insert test values (1,'дорогой')
insert test values (1,'друг')
insert test values (2,'test')


select id ,( select txt + ' ;' as 'data()' from test t2 where t1.id=t2.id for xml path('') )
from test t1
group by id
21 июл 09, 15:20    [7440862]     Ответить | Цитировать Сообщить модератору
 Re: Запрос  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
0) Неужели Вы думаете, что если бы была "спец. функция", то за много лет она бы в FAQ не упоминалась ?

1) Насчет "гиморно": Не СУБД-шное это дело, строки по записям склеивать. сугубо имхо
1.1) Если такая необходимость возникла, следует еще раз подумать над постановкой задачи. опять же имхо

2) Там есть варианты и без написания функций
21 июл 09, 15:23    [7440874]     Ответить | Цитировать Сообщить модератору
 Re: Запрос  [new]
_djХомяГ
Guest
Ну если вторая таблица никак не связана со второй , то есть ещё способ (повторяюсь, это частный случай)

declare
@str varchar(8000)
set @str=''
select @str=@str+', ' +поле from вторая таблица
select @str=stuff(@str,1,1,'')

select *,@str
from первая таблица 
21 июл 09, 15:51    [7441097]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить