sql - 如果表中存在值,如何返回布尔值
问题描述
我需要为 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。
解决方案
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')
推荐阅读
- python - 如何使用pyodbc提交存储过程执行?
- c++ - 行为异常的 getline() 函数,无法接受输入
- jquery - 如果似乎没有错误,如何开始调试 jQuery?
- python - 两个不同的python环境搞砸的问题
- sql - Hibernate中未定义的过滤器参数
- spring-boot - Spring boot - FirebaseMessaging 服务注入在另一个服务中不起作用
- reactjs - 我如何将 API 调用从至尊函数发送到另一个名为 product 的组件,以更改名为 cart: true 并显示在购物车中的模拟数据
- c++ - c++公共成员变量不可访问
- apache-kafka - Apache Kafka MirrorMaker 2 - 访问目标集群中的状态存储更改日志
- sql - 我可以从分区查询数据,但不能删除分区(ORA-14006)?