zoukankan      html  css  js  c++  java
  • postgresql 自定义函数

    CREATE OR REPLACE FUNCTION "public"."pm25_aqi"("pm25_nd" numeric)
      RETURNS "pg_catalog"."int4" AS $BODY$
    DECLARE
        RET numeric;
        IAQI_1 numeric;
        IAQI_2 numeric;
        IAQI_3 numeric;
        IAQI_4 numeric;
        IAQI_5 numeric;
        IAQI_6 numeric;
        IAQI_7 numeric;
        IAQI_8 numeric;
    
        BP_1 numeric;
        BP_2 numeric;
        BP_3 numeric;
        BP_4 numeric;
        BP_5 numeric;
        BP_6 numeric;
        BP_7 numeric;
        BP_8 numeric;
    BEGIN
        IAQI_1=0;
        IAQI_2=50;
        IAQI_3=100;
        IAQI_4=150;
        IAQI_5=200;
        IAQI_6=300;
        IAQI_7=400;
        IAQI_8=500;
    
        BP_1=0;
        BP_2=35;
        BP_3=75;
        BP_4=115;
        BP_5=150;
        BP_6=250;
        BP_7=350;
        BP_8=500;
         
         IF   PM25_ND<=BP_2 
          THEN RET = ((IAQI_2-IAQI_1)/(BP_2-BP_1))*(PM25_ND-BP_1)+IAQI_1;
        
        ELSIF PM25_ND>BP_2 AND PM25_ND<=BP_3 
         THEN  RET = ((IAQI_3-IAQI_2)/(BP_3-BP_2))*(PM25_ND-BP_2)+IAQI_2;
        
        ELSIF PM25_ND>BP_3 AND PM25_ND<=BP_4 
          THEN RET = ((IAQI_4-IAQI_3)/(BP_4-BP_3))*(PM25_ND-BP_3)+IAQI_3;
        
        ELSIF PM25_ND>BP_4 AND PM25_ND<=BP_5 
          THEN RET = ((IAQI_5-IAQI_4)/(BP_5-BP_4))*(PM25_ND-BP_4)+IAQI_4;
        
        ELSIF PM25_ND>BP_5 AND PM25_ND<=BP_6 
         THEN  RET = ((IAQI_6-IAQI_5)/(BP_6-BP_5))*(PM25_ND-BP_5)+IAQI_5;
        
        ELSIF PM25_ND>BP_6 AND PM25_ND<=BP_7 
         THEN  RET = ((IAQI_7-IAQI_6)/(BP_7-BP_6))*(PM25_ND-BP_6)+IAQI_6;
        
        ELSIF PM25_ND>BP_7  
          THEN RET = ((IAQI_8-IAQI_7)/(BP_8-BP_7))*(PM25_ND-BP_7)+IAQI_7;
        END IF;
        
        IF RET>500 THEN RET=500;  END IF;
    
        return  ceiling(RET);
                                         
    END;
    $BODY$
      LANGUAGE plpgsql VOLATILE
      COST 100
  • 相关阅读:
    借阅的列表
    列表中的方法
    对编程本质的认识
    列表技能
    链表策略
    在pycharm里添加解释器路径
    数据类型转化
    罗列内存中的数字
    【python3的学习之路十】模块
    【python3的学习之路九】函数式编程
  • 原文地址:https://www.cnblogs.com/tiandi/p/10778019.html
Copyright © 2011-2022 走看看