Oracle select 判断

创建项目绩效自评视图
本文介绍了一个SQL视图的创建过程,该视图整合了项目评价、资金及年度绩效数据,用于评估项目的财务执行状况和绩效目标完成情况。通过连接多个表,实现了对项目审核状态、预算执行、得分等关键指标的综合展示。

create or replace view V_PD_SELF_EVALUATION as
select PD_PROJECT_EVALUATE.ROW_ID,PD_PROJECT_EVALUATE.FIRST_PROJ,
PD_PROJECT_EVALUATE.PROJECT_CODE,PD_PROJECT_EVALUATE.PROJECT_NAME,PD_PROJECT_EVALUATE.USE_OFFICE,
case PD_PROJECT_EVALUATE.AUDIT_STATUS 
  when '0' then '二级项目绩效自评下发经费处'
    when '1' then '二级项目绩效自评下发经费处领导'
      when '2' then '二级项目绩效自评司局'
        when '3' then '二级项目绩效自评司局处领导'
          when '4' then '二级项目绩效自评经费处'
            when '5' then '二级项目绩效自评经费处领导'
              when '6' then '二级项目绩效自评综合处'
                when '7' then '二级项目绩效自评综合处领导'
                  else '二级项目绩效自评财政库'
                     end AUDIT_STATUS,
PD_PROJ_FUND.YEAR_INITIAL_BUDGET,PD_PROJ_FUND.YEAR_EXECUTE,PD_PROJ_FUND.EXECUTE_RATE_ALL,PD_PROJ_FUND.SCORE,
PD_ANNUAL_PERFORMANCE_MAIN.ANNUAL_GOAL,PD_ANNUAL_PERFORMANCE_MAIN.GOAL_COMPLETION
from PD_PROJECT_EVALUATE PD_PROJECT_EVALUATE
left join PD_PROJ_FUND PD_PROJ_FUND on PD_PROJ_FUND.FROM_ID=PD_PROJECT_EVALUATE.ROW_ID
left join PD_ANNUAL_PERFORMANCE_MAIN PD_ANNUAL_PERFORMANCE_MAIN on PD_ANNUAL_PERFORMANCE_MAIN.FROM_ID=PD_PROJECT_EVALUATE.ROW_ID;
comment on column V_PD_SELF_EVALUATION.ROW_ID is '主键id';
comment on column V_PD_SELF_EVALUATION.FIRST_PROJ is '一级项目';
comment on column V_PD_SELF_EVALUATION.PROJECT_CODE is '财政项目代码';
comment on column V_PD_SELF_EVALUATION.PROJECT_NAME is '项目名称';
comment on column V_PD_SELF_EVALUATION.USE_OFFICE is '司局代码';
comment on column V_PD_SELF_EVALUATION.AUDIT_STATUS is '审核状态';
comment on column V_PD_SELF_EVALUATION.YEAR_INITIAL_BUDGET is '全年预算数';
comment on column V_PD_SELF_EVALUATION.YEAR_EXECUTE is '全年执行数';
comment on column V_PD_SELF_EVALUATION.EXECUTE_RATE_ALL is '执行率';
comment on column V_PD_SELF_EVALUATION.SCORE is '总得分';
comment on column V_PD_SELF_EVALUATION.ANNUAL_GOAL is '预期目标';
comment on column V_PD_SELF_EVALUATION.GOAL_COMPLETION is '实际完成情况';

Oracle 数据库中,执行 `SELECT` 查询时可以根据字段值进行条件判断,主要通过 `WHERE` 子句来实现。`WHERE` 后面可以跟上各种逻辑表达式,用于筛选满足特定条件的记录。 以下是一些常见的用法和示例: ### 使用基本比较运算符 可以使用如 `=`, `<>`, `<`, `>`, `<=`, `>=` 等操作符对字段值进行比较。 ```sql -- 查询部门编号为 10 的员工信息 SELECT e.* FROM emp e WHERE e.deptno = 10; ``` ### 使用 IN / NOT IN 进行列表匹配 当需要判断某个字段的值是否在一组给定的值中时,可以使用 `IN` 或 `NOT IN` 操作符。 ```sql -- 查询部门编号是 10 或 20 的员工信息 SELECT e.* FROM emp e WHERE e.deptno IN (10, 20);[^2] -- 查询薪资为 1000、2000 或 5000 的员工信息 SELECT e.* FROM emp e WHERE e.sal IN (1000, 2000, 5000);[^2] ``` ### 使用 LIKE 进行模糊匹配 如果要根据字符串的部分内容进行查询,可以使用 `LIKE` 操作符配合通配符 `%`(任意多个字符)或 `_`(单个字符)。 ```sql -- 查询名字以 'A' 开头的员工信息 SELECT e.* FROM emp e WHERE e.ename LIKE 'A%'; ``` ### 使用 BETWEEN 进行范围判断 `BETWEEN` 可用于判断字段值是否落在某个区间内,包含边界值。 ```sql -- 查询薪资在 1000 到 5000 之间的员工信息 SELECT e.* FROM emp e WHERE e.sal BETWEEN 1000 AND 5000; ``` ### 使用 IS NULL / IS NOT NULL 判断空值 对于可能为空的字段,可以通过 `IS NULL` 或 `IS NOT NULL` 来判断。 ```sql -- 查询奖金为空的员工信息 SELECT e.* FROM emp e WHERE e.comm IS NULL; ``` ### 复合条件判断 可以结合 `AND`、`OR` 和 `NOT` 等逻辑运算符构建更复杂的查询条件。 ```sql -- 查询部门编号为 10 并且薪资大于 2000 的员工信息 SELECT e.* FROM emp e WHERE e.deptno = 10 AND e.sal > 2000; -- 查询部门编号为 10 或者薪资大于 2000 的员工信息 SELECT e.* FROM emp e WHERE e.deptno = 10 OR e.sal > 2000; ``` 此外,在某些情况下还可以将子查询作为条件的一部分,或者使用 `CASE` 表达式在 `SELECT` 中进行条件判断并返回不同的结果值。 ```sql -- 使用 CASE 表达式根据薪资等级返回不同描述 SELECT e.ename, e.sal, CASE WHEN e.sal < 1500 THEN 'Low' WHEN e.sal BETWEEN 1500 AND 3000 THEN 'Medium' ELSE 'High' END AS sal_level FROM emp e; ``` 这些方法提供了灵活的方式来根据字段值进行条件过滤和处理,从而获取所需的数据库记录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值