当前位置: 首页 > news >正文

一个简单的Oracle函数

CREATE OR REPLACE FUNCTION getyj_zhibiao_value(p_name IN varchar2, p_index IN varchar2)
RETURN NUMBER
IS
    -- 定义返回的指标值变量
    v_result NUMBER;
    
    -- 定义临时变量来存储查询到的指标值
    v_index1 VARCHAR2(50);
    v_index2 VARCHAR2(50);
    v_index3 VARCHAR2(50);
    v_index4 VARCHAR2(50);
    v_index5 VARCHAR2(50);
    v_index6 VARCHAR2(50);
    v_index7 VARCHAR2(50);
    v_index8 VARCHAR2(50);
    v_index9 VARCHAR2(50);
    v_value1 NUMBER;
    v_value2 NUMBER;
    v_value3 NUMBER;
    v_value4 NUMBER;
    v_value5 NUMBER;
    v_value6 NUMBER;
    v_value7 NUMBER;
    v_value8 NUMBER;
    v_value9 NUMBER;
BEGIN
    -- 查询相应的姓名对应的指标和指标值
   SELECT INDEX_code1,INDEX_code2,INDEX_code3,INDEX_code4,INDEX_code5,INDEX_code6,
    INDEX_code7,INDEX_code8,INDEX_code9,nvl(sum(INDEX_value1),0),nvl(sum(INDEX_value2),0),
    nvl(sum(INDEX_value3),0),nvl(sum(INDEX_value4),0),nvl(sum(INDEX_value5),0),nvl(sum(INDEX_value6),0),
    nvl(sum(INDEX_value7),0),nvl(sum(INDEX_value8),0),nvl(sum(INDEX_value9),0)
    INTO v_index1, v_index2, v_index3,v_index4,v_index5,v_index6,v_index7,v_index8,v_index9, v_value1, v_value2,v_value3
    ,v_value4,v_value5,v_value6,v_value7,v_value8,v_value9
    FROM T_WG_KPI_RELEASE
    WHERE GRID_CODE=p_name AND INDEX_CODE1 IS NOT NULL AND CUR_DATE <=to_char(sysdate,'yyyy-MM-dd') AND END_DATE >=to_char(sysdate,'yyyy-MM-dd') 
    GROUP by INDEX_code1,INDEX_code2,INDEX_code3,INDEX_code4,INDEX_code5,INDEX_code6,
    INDEX_code7,INDEX_code8,INDEX_code9;
    
    -- 根据输入的指标判断返回相应的指标值
    IF v_index1 = p_index THEN
        v_result := v_value1;
    ELSIF v_index2 = p_index THEN
        v_result := v_value2;
    ELSIF v_index3 = p_index THEN
        v_result := v_value3;
    ELSIF v_index4 = p_index THEN
        v_result := v_value4;
    ELSIF v_index5 = p_index THEN
        v_result := v_value5;
    ELSIF v_index6 = p_index THEN
        v_result := v_value6;
    ELSIF v_index7 = p_index THEN
        v_result := v_value7;
    ELSIF v_index8 = p_index THEN
        v_result := v_value8;
    ELSIF v_index9 = p_index THEN
        v_result := v_value9;
    ELSE
        -- 如果没有匹配到相应的指标,返回NULL
        v_result := 0;
    END IF;
    
    RETURN v_result;
EXCEPTION
    WHEN NO_DATA_FOUND THEN
        -- 如果没有找到相应的姓名,返回NULL
        RETURN 0;
    WHEN OTHERS THEN
        -- 处理其他异常
        RETURN 0;
END;

http://www.lryc.cn/news/372746.html

相关文章:

  • word中根据上级设置下级编号
  • 【康复学习--LeetCode每日一题】2786. 访问数组中的位置使分数最大
  • bash和sh区别
  • Git 代码管理规范 !
  • MGRS坐标
  • FreeRTOS简单内核实现4 临界段
  • Scala的字符串插值
  • EasyGBS服务器和终端配置
  • git配置2-不同的代码托管平台配置不同的ssh key
  • 【CT】LeetCode手撕—102. 二叉树的层序遍历
  • Flink 命令行提交、展示和取消作业
  • STM32单片机选型方法
  • gsap动画库的实践
  • LeetCode | 387.字符串中的第一个唯一字符
  • textarea 中的内容在word中显示换行不起作用
  • Python 测试用例
  • 树莓派等Linux开发板上使用 SSD1306 OLED 屏幕,bullseye系统 ubuntu,debian
  • SpringBoot3 整合 Mybatis 完整版
  • 图解Transformer学习笔记
  • 【Java并发编程之美 | 第一篇】并发编程线程基础
  • 基于python-CNN卷积网络训练识别牛油果和猕猴桃-含数据集+pyqt界面
  • 论文笔记:ATime-Aware Trajectory Embedding Model for Next-Location Recommendation
  • 深度学习之---迁移学习
  • 百度网盘限速解决办法
  • 银河麒麟系统项目部署
  • Stable Diffusion【应用篇】【艺术写真】:粘土风之后陶瓷风登场,来看看如何整合AI艺术写真吧
  • 手机IP地址距离多远会变:解析移动设备的网络定位奥秘
  • ChatGPT中文镜像网站分享
  • 碳化硅陶瓷膜良好的性能
  • 每日一题——Python实现PAT乙级1028 人口普查 Keyboard(举一反三+思想解读+逐步优化)六千字好文