遇到符号"那么"期待以下之一:*& - +; / 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,
答案 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