次の図のような2つのテーブルがあります
以下の図のようにレコードを選択する必要があります。AH_ID は 2 番目のテーブルに結合する必要があり、ATT_ID は列ヘッダーになり、ATT_DTL_STR_VALUE はその列に関連する値として取得する必要があります
必要な出力
次の図のような2つのテーブルがあります
以下の図のようにレコードを選択する必要があります。AH_ID は 2 番目のテーブルに結合する必要があり、ATT_ID は列ヘッダーになり、ATT_DTL_STR_VALUE はその列に関連する値として取得する必要があります
必要な出力
リレーショナル DBがモデリングに最適ではないEntity-Attribute-Valueデータ モデルがあるようです。キー値ストアを調べることをお勧めします。
ただし、ジャスティンが示唆したように、11g を使用している場合は、次のようにピボット句を使用できます。
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 をハードコードする必要がありますが、動的に行う方法があります。詳細については、こちらをご覧ください。