oralce迁移postgresql或OpenGauss(高斯)数据库规则整理

  1. COSH()

    --Oracle
    SELECT
        COSH(0)
    FROM dual;
    
    
    --输出
       --COSH(0)
    --__________
    --         1
    
    --postgresql  可通过自定义函数实现该方法   
    CREATE OR REPLACE FUNCTION cosh(x double precision) RETURNS double precision AS $$
    BEGIN
      RETURN (EXP(x) + EXP(-x)) / 2;
    END;
    $$ LANGUAGE plpgsql;

  2. NANVL()

    --oracle
    SELECT
        NANVL(1, 2)
    FROM dual;
    
    --输出
       NANVL(1,2)
    _____________
                1
    
    --postgresql 可通过自定义函数实现
    
    CREATE OR REPLACE FUNCTION nanvl(a numeric, b numeric) RETURNS numeric AS $$
    BEGIN
        IF a IS NULL OR a = 'NaN' THEN
            RETURN b;
        ELSE
            RETURN a;
        END IF;
    END;
    $$ LANGUAGE plpgsql;
    
    SELECT nanvl('', 2);

  3. REMAINDER()

    --oracle
    SELECT REMAINDER(-10, 3) FROM dual
    
    
    --postgresql 可使用mod()函数代替
    SELECT mod(-10, 3)
    
  4. SINH()

    --oracle
    SELECT
        SINH(2.0)
    FROM dual;
    
    --postgresql 自定义该函数
    CREATE OR REPLACE FUNCTION sinh(x numeric) RETURNS numeric AS $$
    BEGIN
        RETURN (EXP(x) - EXP(-x)) / 2;
    END;
    $$ LANGUAGE plpgsql;
    SELECT sinh(2.0);
  5. TANH()

    --oracle
    
    SELECT
        tanh(2.0)
    FROM dual;
    
    
    --postgresql 自定义该函数
    
    
    CREATE OR REPLACE FUNCTION tanh(x numeric) RETURNS numeric AS $$
    BEGIN
        RETURN (EXP(x) - EXP(-x)) / (EXP(x) + EXP(-x));
    END;
    $$ LANGUAGE plpgsql;
    
    -- 使用自定义函数计算双曲正切值
    SELECT custom_tanh(2.0); -- 返回数值 0.9640275800758169

  6. NCHR()

    --oracle
    ELECT
        nchr(120)
    FROM dual;
    
    
    --postgresql  使用chr()函数代替
    SELECT chr(120);

  7. NLS_INITCAP(),NLS_LOWER(),NLS_UPPERR()

    -- oracle
    SELECT
        NLS_INITCAP('hello world') "NLS_INITCAP('hello world')"
    FROM dual;
    
    
    SELECT NLS_LOWER('Hello, World') AS lower_text FROM dual;
    
    
    SELECT NLS_UPPER('Hello, World') AS upper_text FROM dual;
    
    
    --postgresql
    
    --使用initcap()函数代替
    SELECT initcap('hello, world') AS initcap_text;
    
    --使用LOWER()函数代替
    SELECT LOWER('Hello, World') AS lower_text;
    
    --使用UPPER()函数代替
    SELECT UPPER('Hello, World') AS upper_text;
    
    

    还有很多函数整理好后会更新上来

  • 24
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值