Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Oracle中编写SQL来显示我的案例中的数据?_Sql_Oracle_Matrix - Fatal编程技术网

如何在Oracle中编写SQL来显示我的案例中的数据?

如何在Oracle中编写SQL来显示我的案例中的数据?,sql,oracle,matrix,Sql,Oracle,Matrix,我有一张这样的桌子- create table tbl1 ( id number, role number ); insert into tbl1 values (1, 1); insert into tbl1 values (2, 3); insert into tbl1 values (1, 3); create table tbl2 ( role number, meaning varchar(50) ); insert into tbl2 values (1, 'changi

我有一张这样的桌子-

create table tbl1 
(
id number,
role number
);


insert into tbl1 values (1, 1);
insert into tbl1 values (2, 3);
insert into tbl1 values (1, 3);


create table tbl2
(
role number,
meaning varchar(50)
);

insert into tbl2 values (1, 'changing data');
insert into tbl2 values (2, 'move file');
insert into tbl2 values (3, 'dance');
我希望sql结果如下所示-

id     role_meaning      is_permitted
1      changing data     yes
1      move file         no
1      dance             yes
2      changing data     no
2      move file         no
2      dance             yes     
请帮忙,我怎么做?我尝试过几种方法,但不确定如何做到这一点。

您可以在这里使用

查询1

select tbl1.id,
tbl2.meaning,
case when tbl1.role is NULL then 'no' else 'yes' end is_permitted
from tbl1 
partition by (id) right outer join tbl2
on tbl1.role = tbl2.role
order by tbl1.id, tbl2.role
| ID |       MEANING | IS_PERMITTED |
|----|---------------|--------------|
|  1 | changing data |          yes |
|  1 |     move file |           no |
|  1 |         dance |          yes |
|  2 | changing data |           no |
|  2 |     move file |           no |
|  2 |         dance |          yes |

select tbl1.id,
tbl2.meaning,
case when tbl1.role is NULL then 'no' else 'yes' end is_permitted
from tbl1 
partition by (id) right outer join tbl2
on tbl1.role = tbl2.role
order by tbl1.id, tbl2.role
| ID |       MEANING | IS_PERMITTED |
|----|---------------|--------------|
|  1 | changing data |          yes |
|  1 |     move file |           no |
|  1 |         dance |          yes |
|  2 | changing data |           no |
|  2 |     move file |           no |
|  2 |         dance |          yes |

您的
列中的数据从哪里来?表
tbl1
tbl2
似乎没有。您好,这应该从“tbl1”表中确定(如果值为1,则为是,如果表中不存在,则为否)