1

我有两张表,如下图所示

在此处输入图像描述

在此处输入图像描述

我需要选择如下图所示的记录。AH_ID 需要加入第二个表,ATT_ID 将是列标题,ATT_DTL_STR_VALUE 需要作为该列相关值

所需输出

在此处输入图像描述

4

1 回答 1

1

听起来您有一个实体-属性-值数据模型,而关系数据库在建模方面并不是最好的。您可能想要查看键值存储

但是,正如贾斯汀建议的那样,如果您使用的是 11g,则可以使用 th pivot 子句,如下所示:

SELECT *
FROM (
      SELECT T1.AH_ID, T1.AH_DESCRIPTION, T2.ATT_ID, T2.ATT_DTL_STR_VALUE
      FROM T1 
        LEFT OUTER JOIN T2 ON T1.AH_ID = T2.AH_ID
     )
PIVOT (MAX(ATT_DTL_STR_VALUE) FOR (ATT_ID) IN (1));

此语句要求您在 ATT_ID 中进行硬编码,但是有一些方法可以动态执行。更多信息可以在这里找到。

于 2013-05-22T02:54:35.073 回答