Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Склейка строк значений 
V
    Опции темы
2222211111
Дата 24.4.2013, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 5.2.2013

Репутация: нет
Всего: нет



Всем привет. Есть таблицы. (для TSQL)

Код

declare @t1 table (id int, Value  varchar(50));  
declare @t2 table (id int, Value  varchar(50));  
declare @t3 table (id int, Value  varchar(50));  
declare @t4 table (id int, Value  varchar(50));  

insert @t1 (id, Value)
select 1,'Значение1' union
select 2,'Значение2' 

insert @t2 (id, Value)
select 1,'Значение11' union
select 3,'Значение33'

insert @t3 (id, Value)
select 1,'Значение111' union

select 2,'Значение222' 

insert @t4 (id, Value)
select 2,'Значение2222' union
select 3,'Значение3333'
 


Подскажите пожайлуйста как можно получить такой результат. Нужна склейка строк по Id. Таблиц может быть больше чем четыре. Значения могут быть во всех таблицах,  могут отсутствовать вовсе. 

Id Value
1 'Значение1' + ' ' + 'Значение11' + ' ' + 'Значение111'
2 'Значение2' + ' ' + 'Значение222' + ' ' + 'Значение2222'
3 'Значение33' + ' ' + 'Значение3333' 

В лоб решил написать запрос с union где перечисляю комбинаторно все варианты, когда в каком то поле нет значений. Можно ли это проще как-то написать? 
PM MAIL   Вверх
Akina
Дата 24.4.2013, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Код

select q.id, concat_ws(' ',t1.value,t2.value,t3.value,t4.value)
from 
(
select id from t1
union
select id from t2
union
select id from t3
union
select id from t4
) q
left join t1 on q.id=t1.id
left join t2 on q.id=t2.id
left join t3 on q.id=t3.id
left join t4 on q.id=t4.id



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
2222211111
Дата 24.4.2013, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 5.2.2013

Репутация: нет
Всего: нет



Большое спасибо. Все получилость. Только заменил CONCAT_WS на CONCAT тк у меня TSQL

Добавлено через 29 секунд
Ok
PM MAIL   Вверх
Akina
Дата 24.4.2013, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(2222211111 @  24.4.2013,  21:38 Найти цитируемый пост)
Только заменил CONCAT_WS на CONCAT тк у меня TSQL

А как CONCAT там относится к null среди аргументов? 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0468 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.