首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用一个表coumn名称和另一个表的coumn值连接不同的表

用一个表coumn名称和另一个表的coumn值连接不同的表
EN

Stack Overflow用户
提问于 2013-10-16 13:29:25
回答 2查看 124关注 0票数 2

我是神谕的新手。在这里,我创建了两个表如下:表1:

代码语言:javascript
代码运行次数:0
运行
复制
create table emp_Det(emp_id varchar2(30), emp_name varchar2(80), PLSQL varchar2(20), ADF varchar2(20));

表2:

代码语言:javascript
代码运行次数:0
运行
复制
create table group(grp_id varchar2(30), grp_name varchar2(80));

我在两个表中都插入了如下值:

Table1:emp_Det

代码语言:javascript
代码运行次数:0
运行
复制
Emp_id    Emp_name   PLSQL    ADF
Sample1    Sample1     5       5
Sample3    Sample2     5       5
Sample3    Sample3     5       5

表2:组

代码语言:javascript
代码运行次数:0
运行
复制
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的值,结果应该如下所示

代码语言:javascript
代码运行次数:0
运行
复制
EMP_ID   EMP_NAME    GRP_ID     GRP_NAME    Rating
Sample1   Sample1     ORA        PLSQL         5
Sample1   Sample1     ORAS       ADF           5

请帮助我准备查询或程序或建议我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-16 13:52:52

如果您使用的是11g及以上,那么您可以尝试如下:

代码语言:javascript
代码运行次数:0
运行
复制
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演示

票数 1
EN

Stack Overflow用户

发布于 2013-10-16 13:40:33

尝试这样的方法(不完全确定语法):

代码语言:javascript
代码运行次数:0
运行
复制
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';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19404821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档