比较 Oracle SQL 中相同列的数据

克里斯·波普

我需要根据另一行比较同一列的数据。假设我有一个表格,其中显示了如下详细信息:

用户名 服务 特权
美国广播公司 测试 审计
XYZ 测试 1 维持
XYZ 测试 1 管理
XYZ 测试 1 审计

我想要这样的结果:

用户名 服务 特权
XYZ 测试 1 维持
XYZ 测试 1 管理

基本上,我想删除在多个服务中使用的所有权限,例如在测试和测试 1 服务中都使用了审计权限。

如何使用 Oracle SQL 实现此解决方案?

小脚怪

像这样的东西?第 1 - 6 行的样本数据;查询从第 7 行开始。

SQL> with test (username, service, privilege) as
  2    (select 'ABC', 'Test' , 'Audit'    from dual union all
  3     select 'XYZ', 'Test1', 'Maintain' from dual union all
  4     select 'XYZ', 'Test1', 'Manage'   from dual union all
  5     select 'XYZ', 'Test1', 'Audit'    from dual
  6    )
  7  select *
  8  from test
  9  where privilege not in (select privilege
 10                          from test
 11                          group by privilege
 12                          having count(*) > 1);

USE SERVI PRIVILEG
--- ----- --------
XYZ Test1 Maintain
XYZ Test1 Manage

SQL>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章