首页 > 解决方案 > 如果表中存在值,如何返回布尔值

问题描述

我需要为 oracle 数据库的审计跟踪显示一个布尔值。

SELECT 
   CASE WHEN EXISTS(select * from 
   (Select VALUE FROM v$parameter WHERE UPPER (name) = 'AUDIT_TRAIL') 
   where value in('OS','DB')  ) 
     THEN 1 
     ELSE 0  
   END 
FROM dual ; 

有没有办法显示布尔值而不是 1 或 0。值可以是 OS 或 DB。

标签: sqloracle

解决方案


Oracle sql 没有布尔数据类型。

您可以使用以下查询直接返回 0 或 1 并将它们用作布尔值:

Select case when count(1) > 0 then 1 else 0 end as result
FROM v$parameter WHERE UPPER (name) = 'AUDIT_TRAIL' and value in('OS','DB') 

推荐阅读