db2中的'DECFLOAT'错误

Jab*_*bed 4 db2 toad-scripting

查找错误-DB2数据库错误:错误[22018] [IBM] [DB2 / AIX64] SQL0420N在函数“ DECFLOAT”的字符串参数中找到无效字符。

查询----

SELECT 
   MSISDN,
   CONTRNO,
   TRANSDATE,
   TARIFF_GROUP,
   ACT_DURATION,
   BILLTEXT,
   GROSS_AMOUNT,
   CASE
       WHEN TARIFF_GROUP IN('PAG2')
       THEN DECIMAL((DECIMAL(ACT_DURATION,10,4)/10),20,4)*0.01
       ELSE 'CHECK'
   END RA_RATE
FROM HISTCALLS
WHERE call_type IN (50,
                    54)
  AND TRANSDATE = CURRENT date - 1 DAY
Run Code Online (Sandbox Code Playgroud)

War*_*enT 5

问题出在您的案例表达中。对于某些行,单个结果列不能为数字,而对于其他行,则不能为字符。

SELECT 
    MSISDN,
    CONTRNO,
    TRANSDATE,
    TARIFF_GROUP,
    ACT_DURATION,
    BILLTEXT,
    GROSS_AMOUNT,
    CASE
        WHEN TARIFF_GROUP = 'PAG2'
        THEN DECIMAL(ACT_DURATION * 0.001, 10,4)
        ELSE null
    END RA_RATE
  FROM HISTCALLS
  WHERE call_type IN (50, 54)
    AND TRANSDATE = CURRENT date - 1 DAY
Run Code Online (Sandbox Code Playgroud)