2

私はオラクルが初めてです。ここでは、次のように 2 つのテーブルを作成しました: テーブル 1:

create table emp_Det(emp_id varchar2(30), emp_name varchar2(80), PLSQL varchar2(20), ADF varchar2(20));

表 2:

create table group(grp_id varchar2(30), grp_name varchar2(80));

次のように、両方のテーブルに値を挿入しました。

表1:emp_Det

Emp_id    Emp_name   PLSQL    ADF
Sample1    Sample1     5       5
Sample3    Sample2     5       5
Sample3    Sample3     5       5

表2:グループ

grp_id      grp_name
ORA          PLSQL
ORAS         ADF

これら 2 つのテーブルから列を選択し、1 つのテーブルの列名を別のテーブルの列の値と結合する必要があります。列名は emp_id,Emp_name,Grp_id,Grp_name,rating です。

たとえば、最初のテーブル ( EMP_DET )では、 「PLSQL」は列名で、「PLSQL」は 2 番目のテーブル ( Group ) 列 grp_name の値であり、結果は次のようになります。

EMP_ID   EMP_NAME    GRP_ID     GRP_NAME    Rating
Sample1   Sample1     ORA        PLSQL         5
Sample1   Sample1     ORAS       ADF           5

質問や手順を準備するのを手伝ってくれるか、私に提案してください

4

2 に答える 2

1

このようなことを試してください(構文について完全にはわかりません):

SELECT emp_id, emp_name, grp_id, grp_name, plsql AS rating
  FROM emp_det, group
 WHERE grp_name = 'PLSQL'
UNION
SELECT emp_id, emp_name, grp_id, grp_name, adf AS rating
  FROM emp_det, group
 WHERE grp_name = 'ADF';
于 2013-10-16T13:40:33.077 に答える
1

11g以降を使用している場合は、これを試すことができます:

select t.*, g.grp_id
from
(select *
from emp_det
unpivot
(
  rating for group_name in ("PLSQL", "ADF")
)) t join "group" g on t.group_name = g.grp_name

ここにsqlfiddleのデモがあります

于 2013-10-16T13:52:52.690 に答える