case sql查询

ajsxfq5m  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(371)

我有以下问题

select distinct i.host_name, d.name, 
case 
when ts.encrypted = 'YES'
then 'ENCRYPTED' 
else 'NO'
end as ENCRYPTED 
from dba_tablespaces ts, v$encrypted_tablespaces et, v$tablespace t, v$instance I, v$database d
where t.ts#=et.ts# (+) 
and ts.tablespace_name = t.name

如果数据库上的所有表空间都加密了,我希望得到这样的结果
主机名EncryptedHost1000DatabaseEncryptedPed
如果只有一个表空间没有加密,我希望得到这样的结果
主机名EncryptedHost1000数据库号
这是这个查询当前正在做的,而不是我需要的。我会很感激你的帮助。
主机名EncryptedHost1000DatabaseEncryptedHost1000DatabaseNo

byqmnocz

byqmnocz1#

使用带有条件的简单分组查询 SUM 聚合函数

select   i.host_name, d.name, 
case 
when sum( case when ts.encrypted = 'NO'
          then 1 end)  > 0 then 'NO' else 'ENCRYPTED' end as encrypted
from dba_tablespaces ts, v$encrypted_tablespaces et, v$tablespace t, v$instance I, v$database d
where t.ts#=et.ts# (+) 
and ts.tablespace_name = t.name
group by i.host_name, d.name

相关问题