如何对变体列执行间接引用?

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

我正在确定要处理对变体列的间接引用的结构/查询(即,我想根据另一张表的定义为不同的行提取不同的字段)。

示例:我有代表不同项目的变体数据,每个项目根据它们所属的类别具有完全不同的属性集。尽管这些属性的命名因类别而异,但可以共享/识别一些共同的目的。

因此,我有一个表(属性),用于定义每种用途/类别组合的属性名称

属性

| Category | Purpose | Property_Name | Property_Data_Type |
|----------|---------|---------------|--------------------|
|    car   |   name  |  model        |    string          |
|    car   |  brand  |  make         |    string          |
|    car   |  price  |  invoice      |    number          |
|  phone   |  brand  |  manufacturer |    string          |
|  phone   |   name  |  name         |    string          |
|  phone   |  price  |  msrp         |    number          |
|----------|---------|---------------|--------------------|

并且我有一个表(项目),其中包含变量字段中每个项目的信息

物品

| Item_Id | Category | Properties                                                    |
|---------|----------|---------------------------------------------------------------|
|     1   |   car    | {"make":"ford", "model":"focus", "invoice":18999}             |
|     2   |   car    | {"make":"audi", "model":"a5", "invoice":36487}                |
|     3   | phone    | {"manufacturer":"apple", "model":"iphone 10", "msrp":679}     |
|     4   | phone    | {"manufacturer":"samsung", "model":"galaxy s20", "msrp":1029} |
|---------|----------|---------------------------------------------------------------|

我想做的是获取一个查询(或一个填充另一个表的过程),该查询将根据定义的属性目的从json数据中提取值。因此,我将有一个查询,它可以给出以下结果

| Item_Id | Category | Name       | Brand   | Price |
|---------|----------|------------|---------|-------|
|    1    |  car     | focus      | ford    | 18999 |
|    2    |  car     | a5         | audi    | 36487 |
|    3    |  phone   | iphone 10  | apple   |   679 |
|    4    |  phone   | galaxy s20 | samsung |  1029 |
|---------|----------|------------|---------|-------|
sql snowflake-cloud-data-platform variant indirection
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.