如何从垂直表创建水平视图

时间:2013-10-13 14:56:55

标签: mysql sql oracle views sybase

我有下表定义

table Rec
{
integer attrib_id
integer attrib_value,
integer unique_id
}

属性具有如下的另一个映射 表属性

{
  integer attrib_id,
  integer group_id
}

我有大约20个属性id分配给不同的组ID。 表Rec中的group_id可能不存在属性id。 我为特定的组ID创建了以下视图,如下所示 -

create view group as 
  select tr1.attrib_value as "Name", 
         tr2.attrib_value as "Age", 
         tr3.attrib_value as "Sex"
    from Rec tr1, 
         Rec tr2, 
         Rec tr3
   where tr1.unique_id = tr2.unique_id
     and tr2.unique_id = tr3.unique_id
     and tr1.unique_id = tr3.unique_id
     and tr1.attrib_id = 1
     and tr2.attrib_id = 2
     and tr3.attrib_id = 3

我想从垂直表列表创建水平映射。 问题是Rec表中可能没有特定属性。所以有条款失败。

有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:-1)

创建一个包含所有可能属性的表,然后将属性表连接到它。