我有两个表。 第一个'table_fields'
SQL oracle获取一行中某一列的值
Type Name Label
ORG text1 organisation
ORG text2 location
PERS text1 manager
PERS text2 gender
PERS text3 age
第二个“table_data
”
Type ID text1 text2 text3 text4
ORG Sven HR Brussels
PERS Ludo theo male 43
ORG Sara MR Barcelona
我尝试做的是像有两个额外的列table_Fields一个表,代表我TABLE_DATA的ID和值table_fields中特定名称的特定列。 我的结果应该是这样的:
Type Name Label ID_table_data VALUE
ORG text1 organisation Sven HR
ORG text2 location Sven Brussels
PERS text1 manager Ludo theo
PERS text2 gender Ludo male
PERS text3 age Ludo 43
ORG text1 organisation Sara MR
ORG text2 location Sara Barcelona
我不知道这样的事情是可能的SQL甲骨文
这将不匹配'table_field.name'与适当的'table_data'列并将列转置为行。 – MT0
@MTO为什么我们要在第一名呢? – apomene
如果'type'是'ORG',那么'text1'列代表'organisation',如果'type'是'PERS',那么它就是'manager'。您没有执行此匹配,因此此查询提供的数据无效。实际上,您正在执行'CROSS JOIN',因为所有'table_field.label'值都会加入到所有'textN'列 - 这是错误的。 – MT0