Brand

问题描述 投票:0回答:1

我试图将一个表解开数据透视为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

我如何选择一个键值对以及相应的数字作为索引?

sql-server unpivot entity-attribute-value
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.