Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как перевернуть таблицу?  [new]
AlexS1
Guest
Добрый день.
Необходимо содержимое таблицы 1 переписать в таблицу 2 следующим образом:
(сорри за некрасивый рисунок)

Таблица 1:
|ключ| поле1 | поле2 | ....... | поле n |
| 1 | 11 | 21 | ....... | n1 |
| 2 | 12 | 22 | ....... | n2 |
| 3 | 13 | 23 | ....... | n3 |
......
| m | 1m | 2m | ....... | nm |


Таблица 2:
|ключ| имя поля | значение |
| 1 | поле 1 | 11 |
| 1 | поле 2 | 21 |
............
| 1 | поле n | n1 |
| 2 | поле 1 | 12 |
| 2 | поле 2 | 22 |
............
| 2 | поле n | n2 |
| 3 | поле 1 | 13 |
| 3 | поле 2 | 23 |
............
| 3 | поле n | n3 |
............
| m | поле 1 | 1m |
| m | поле 2 | 2m |
............
| m | поле n | nm |

Подскажите в каком направлении копать?
Заранее спасибо.
2 авг 04, 11:39    [851982]     Ответить | Цитировать Сообщить модератору
 Re: Как перевернуть таблицу?  [new]
zass
Member

Откуда: Minsk
Сообщений: 1043
https://www.sql.ru/forum/actualthread.aspx?bid=1&tid=77106&hl=%f2%f0%e0%ed%f1%ef%ee%ed%e8%f0%ee%e2%e0%ed%e8%e5
2 авг 04, 11:48    [852028]     Ответить | Цитировать Сообщить модератору
 Re: Как перевернуть таблицу?  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
declare cur cursor for
 select name from syscolumns where id = object_id('mytab') and name <> 'ключ'
declare @n varchar(255), @sql varchar(1000)
fetch next from cur into @n
while @@fetch_status = 0 begin
 set @sql = 'insert into mytab2 (ключ, имяполя, значение) select ключ, '''+@n+''', @n from mytab'
 exec (@sql)
 fetch next from cur into @n
end
примерно так


для спящего время бодрствования равносильно сну
2 авг 04, 11:50    [852037]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить