我的源表(CountryCodes、SubCodes)中有几列,这些列的值是
Subcodes CountryCodes
100 1111
100 1566
100 2485
100 4586
101 4789
101 4756
101 7895 so on
我正在使用下面的查询,它根据需要给我结果
select
CASE WHEN C.SubCodes= '100' Then
CASE
WHEN C.CountryCodes IN ('5001','5048') THEN '001'
WHEN C.CountryCodes = '5005' THEN '003'
WHEN C.CountryCodes= '5018' AND SA.Amt IN(30,900) THEN '094'
WHEN C.CountryCodes = '5018' AND SA.Amt IN(40,1200) THEN '095'
WHEN C.CountryCodes = '5018' AND SA.Amt IN(50,1500) THEN '096'
WHEN C.C.CountryCodes = '5029' THEN '781'
WHEN C.C.CountryCodes = '5026' THEN '454'
WHEN C.C.CountryCodes = '5064' THEN '001'
WHEN C.C.CountryCodes = '5017' THEN '064'
ELSE CAST('' AS CHAR(3))
END
ELSE CAST('' AS CHAR(3))
END
END AS SomeCountryCoDes
现在业务提出了新的要求。那是
CountryCode 5020 位于 SubCode 100 中。
现在我的要求是如果CountryCode 5020
是,Subcode 100
那么我需要将 subCode 的值从 100 更改为 101。
上面的 case 语句必须用 if 语句进行修改。
Step1: 如果 CountryCode = 5020 and subcode= 100 那么 Subcode 必须是 101 Else case statement
Step2:上述Case语句必须在IF之后
注意:在 Source 表中,不应更改该值。