我试图将一个表解开数据透视为EAV格式,但想为每行保留一些额外的元数据。
初始表
| Brand | Name | Number | Col1 | Col2 |
|-------|----------|--------|------|------|
| A | Book | #1 | 1 | 2 |
| B | Magazine | #2 | 1 | 2 |
理想的输出
| Number | key | val |
|--------|-------|----------|
| #1 | Brand | A |
| #1 | Name | Book |
| #1 | Col1 | 1 |
| #1 | Col2 | 2 |
| #2 | Brand | B |
| #2 | Name | Magazine |
| #2 | Col1 | 1 |
| #2 | Col2 | 2 |
实际产出
无效的列名'Number'。
查询示例
select
[Number], -- How can this be selected?
[key],
[val]
from (
select
[Number],
[Brand],
[Name]
from [SomeTable]
) data
unpivot (
[val]
for [key] in (
[Brand],
[Name],
[Number],
[Col1],
[Col2]
)
) as unpiv
我如何选择一个键值对以及相应的数字作为索引?