def combineDict(dict1, dict2):
res = collections.defaultdict(list)
for key, value in (dict1.items() | dict2.items()):
res[key].append(value)
return res
print(combineDict(dict1, dict2))
Ник прав. Следующая ошибка - else должно быть else if (в настоящее время у вас есть логическое выражение в else, которое не имеет смысла). Вот что должно быть
ELSE IF(@Trans_type = 'subscr_cancel')
BEGIN
SET @tmpType = 'basic'
END
В настоящее время у вас есть следующее (что неверно):
ELSE(@Trans_type = 'subscr_cancel')
BEGIN
SET @tmpType = 'basic'
END
Вот совет на будущее - дважды щелкните по ошибке, и SQL Server Management Studio перейдет к строке, в которой находится ошибка. Если вы думаете, что SQL Server выдает загадочные ошибки (а я так не думаю), значит, вы не работали с Oracle!
Не выдает ошибок?
Попробуйте
SET @tmpType = 'premium
'
и
SET @tmpType = 'basic'
Вам не хватает оператора SET при назначении переменных в блоке IF .. ELSE?
да Ник прав.
Вам нужно использовать SET
или SELECT
, чтобы назначить @tmpType
Просто подсказка, вам не нужны BEGIN и END, если они содержат только один оператор.
например:
IF(@Trans_type = 'subscr_signup')
set @tmpType = 'premium'
ELSE iF(@Trans_type = 'subscr_cancel')
set @tmpType = 'basic'
попробуйте
IF(@Trans_type = 'subscr_signup')
BEGIN
set @tmpType = 'premium'
END
ELSE iF(@Trans_type = 'subscr_cancel')
begin
set @tmpType = 'basic'
END