我在我的源表數列(CountryCodes,子碼)和值的列如何使用if語句的情況下在SQL Server一起
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駐留在子碼100
現在,我的要求是,如果CountryCode 5020
是Subcode 100
然後我需要子碼的值更改爲100〜101
上述case語句有用if語句表示讚賞。
第一步:如果COUNTRYCODE = 5020和子碼= 100則子碼必須是101否則case語句
第二步:上述情況語句後要遵循IF
注:在源表中的值不應該chnaged。
不能使用IF語句SELECT內。 也許你的問題可以通過觸發器來解決。製作一個觸發器,檢查您的要求並應用必要的更改。 – KuramaYoko 2013-02-18 14:11:38
這條線'當C.CountryCodes ='5020'那'000''爲什麼不用'100'而不是'000'? – 2013-02-18 14:12:55
爲什麼你不能改變表中的值?如果你沒有改變價值,那麼你的病例陳述將如何工作 – DevelopmentIsMyPassion 2013-02-18 14:13:11