我是神谕的新手。在这里,我创建了两个表如下:表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));
我在两个表中都插入了如下值:
Table1: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
我们必须从这两个表中选择列,并且必须将一个表的列名与另一个表的列值连接起来。列名为emp_id、Emp_name、Grp_id、Grp_name、rating。
例如,在first table(EMP_DET) 中,“PLSQL”是列名,"PLSQL“是第二个table(Group)列grp_name的值,结果应该如下所示
EMP_ID EMP_NAME GRP_ID GRP_NAME Rating
Sample1 Sample1 ORA PLSQL 5
Sample1 Sample1 ORAS ADF 5
请帮助我准备查询或程序或建议我。
发布于 2013-10-16 13:52:52
如果您使用的是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
发布于 2013-10-16 13:40:33
尝试这样的方法(不完全确定语法):
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';
https://stackoverflow.com/questions/19404821
复制相似问题