У меня есть несколько столбцов в моей исходной таблице (CountryCodes, субкоды) и значение для этих столбцовКак использовать, если заявление вместе с делом в SQL сервере
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.
выше заявление дело должно справьтесь с утверждением.
Шаг1: Если CountryCode = 5020 и субкодовые = 100, то Subcode должен быть 101 Else сазе
Шаг2: Вышеупомянутое заявление Case должны следовать после IF
Примечания: в исходной таблице значения не следует перебирать.
Вы не можете использовать оператор IF внутри SELECT. Возможно, ваша проблема может быть решена с помощью триггера. Сделайте триггер, который проверяет ваши требования и применяет необходимые изменения. – KuramaYoko
в этой строке 'WHEN C.CountryCodes = '5020' THEN '000'' почему бы не использовать' 100' вместо '000'? –
Почему вы не можете изменить значение в таблице? Если вы не изменяете значение, то как будет работать ваш оператор case – DevelopmentIsMyPassion