簡體   English   中英

連接來自不同表的 2 列

[英]concatenate 2 columns from different tables

使用以下查詢,我試圖從 v$database 中獲取 db_unique_name 與 DBA_PRIV_AUDIT_OPTS 的 PRIVILEGE 列相結合。

select db_unique_name||':'||PRIVILEGE DB_NAME_PRIV,PROXY_NAME,PRIVILEGE,SUCCESS,FAILURE from
(SELECT d.PRIVILEGE,d.PROXY_NAME,d.PRIVILEGE,d.SUCCESS,d.FAILURE from DBA_PRIV_AUDIT_OPTS d
where d.PRIVILEGE in ('AUDIT SYSTEM','AUDIT ANY','ALTER SYSTEM','GRANT ANY ROLE','GRANT ANY PRIVILEGE','GRANT ANY OBJECT PRIVILEGE','CREATE USER','ALTER USER','DROP USER')),v$database;

您指定了d.privilege兩次,所以只刪除了額外的一個:

select db_unique_name||':'||PRIVILEGE DB_NAME_PRIV,PROXY_NAME,PRIVILEGE,SUCCESS,FAILURE from
(SELECT d.PRIVILEGE,d.PROXY_NAMEd.SUCCESS,d.FAILURE from DBA_PRIV_AUDIT_OPTS d
where d.PRIVILEGE in ('AUDIT SYSTEM','AUDIT ANY','ALTER SYSTEM','GRANT ANY ROLE','GRANT ANY PRIVILEGE','GRANT ANY OBJECT PRIVILEGE','CREATE USER','ALTER USER','DROP USER')),v$database;

另外為什么不簡單地沒有子查詢?

select db_unique_name||':'||PRIVILEGE DB_NAME_PRIV,PROXY_NAME,PRIVILEGE,SUCCESS,FAILURE 
from DBA_PRIV_AUDIT_OPTS d, v$database
where d.PRIVILEGE in (
         'AUDIT SYSTEM','AUDIT ANY','ALTER SYSTEM'
        ,'GRANT ANY ROLE','GRANT ANY PRIVILEGE'
        ,'GRANT ANY OBJECT PRIVILEGE','CREATE USER'
        ,'ALTER USER','DROP USER'
      );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM