遇到了符号"那么"当期待以下之一

时间:2016-12-16 05:59:08

标签: oracle

遇到符号"那么"期待以下之一:*& - +; / at mod remaining rem和or || multiset

CASE
         WHEN CLAIMNUMBER = 311754 AND POLICY_NUMBER = 21620 THEN             cast(CLAIMNUMBER as varchar2(10)) + 'M'
                   WHEN CLAIMNUMBER = 317802 AND POLICY_NUMBER = 15571 THEN    cast(CLAIMNUMBER as varchar2(10)) + 'M'
                 WHEN CLAIMNUMBER = 318794 AND POLICY_NUMBER = 19325 THEN cast(CLAIMNUMBER as varchar2(10)) + 'M'
         WHEN CLAIMNUMBER = 319510 AND POLICY_RECORD_ID = '21294_19' THEN cast(CLAIMNUMBER as varchar2(10)) + 'M'
            ELSE
                cast(CLAIMNUMBER as varchar(10))
            END AS CLAIMNUMBER,

1 个答案:

答案 0 :(得分:0)

假设CLAIMNUMBER是数字数据类型,导致此问题的最可能原因是使用+作为连接运算符。而是使用||来连接字符串,您的查询应该可以正常工作。精炼查询应如下所示

select CASE
          WHEN CLAIMNUMBER = 311754 AND POLICY_NUMBER = 21620 THEN  cast(CLAIMNUMBER as varchar2(10))  'M'
          WHEN CLAIMNUMBER = 317802 AND POLICY_NUMBER = 15571 THEN  cast(CLAIMNUMBER as varchar2(10)) || 'M'
          WHEN CLAIMNUMBER = 318794 AND POLICY_NUMBER = 19325 THEN  cast(CLAIMNUMBER as varchar2(10)) || 'M'
          WHEN CLAIMNUMBER = 319510 AND POLICY_RECORD_ID = '21294_19' THEN cast(CLAIMNUMBER as varchar2(10)) || 'M'
          ELSE
                  cast(CLAIMNUMBER as varchar2(10))
        END AS CLAIMNUMBER1