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

Откуда:
Сообщений: 183
Привет всем!

Подскажите, пожалуйста, как можно существующие данные преобразовать вот как в примере:

Изначальные данные:
Номер Описание1 Текст1 Описание2 Текст2
3 Фрукт яблоко Fruit apple
3 Фрукт апельсин Fruit orange
6 Другое орех Other nut


То, что нужно:
Номер RUS ENG
3 Фрукт Fruit
3.1 яблоко apple
3.2 апельсин orange
6 Другое Other
6.1 орех nut
8 мар 18, 19:53    [21245227]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных  [new]
LisSp
Member

Откуда:
Сообщений: 183
LisSp
Привет всем!

Подскажите, пожалуйста, как можно существующие данные преобразовать вот как в примере:

Изначальные данные:
Номер Описание1 Текст1 Описание2 Текст2
3 Фрукт яблоко Fruit apple
3 Фрукт апельсин Fruit orange
6 Другое орех Other nut


То, что нужно:
Номер RUS ENG
3 Фрукт Fruit
3.1 яблоко apple
3.2 апельсин orange
6 Другое Other
6.1 орех nut


Получается то, что в столбцах Описание1 и Описание2 -это константа
8 мар 18, 19:54    [21245229]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
;with t as
	(
	select
		Номер,Описание1,Текст1,Описание2,Текст2
	from
		(
		values
			('3','Фрукт','яблоко','Fruit','apple'),
			('3','Фрукт','апельсин','Fruit','orange'),
			('6','Другое','орех','Other','nut')
		)t(Номер,Описание1,Текст1,Описание2,Текст2)
	)

select distinct
	Номер,Описание1,Описание2
from
	t
union all
select
	Номер + '.' + cast(row_number() over(partition by Номер order by (select null)) as char),
	Текст1,Текст2
from
	t
order by
	1
8 мар 18, 20:38    [21245295]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных  [new]
LisSp
Member

Откуда:
Сообщений: 183
Дедушка
;with t as
	(
	select
		Номер,Описание1,Текст1,Описание2,Текст2
	from
		(
		values
			('3','Фрукт','яблоко','Fruit','apple'),
			('3','Фрукт','апельсин','Fruit','orange'),
			('6','Другое','орех','Other','nut')
		)t(Номер,Описание1,Текст1,Описание2,Текст2)
	)

select distinct
	Номер,Описание1,Описание2
from
	t
union all
select
	Номер + '.' + cast(row_number() over(partition by Номер order by (select null)) as char),
	Текст1,Текст2
from
	t
order by
	1


Спасибо большое!!!
9 мар 18, 14:57    [21246056]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить