IF / ELSE Хранимая процедура

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))
14
задан Joe Phillips 6 November 2009 в 14:37
поделиться

7 ответов

Ник прав. Следующая ошибка - 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!

16
ответ дан 1 December 2019 в 09:32
поделиться

Не выдает ошибок? Попробуйте
SET @tmpType = 'premium '
и
SET @tmpType = 'basic'

8
ответ дан 1 December 2019 в 09:32
поделиться

Вам не хватает оператора SET при назначении переменных в блоке IF .. ELSE?

3
ответ дан 1 December 2019 в 09:32
поделиться

try

set @tmptype
1
ответ дан 1 December 2019 в 09:32
поделиться

да Ник прав.

Вам нужно использовать SET или SELECT , чтобы назначить @tmpType

1
ответ дан 1 December 2019 в 09:32
поделиться

Просто подсказка, вам не нужны BEGIN и END, если они содержат только один оператор.

например:

IF(@Trans_type = 'subscr_signup')    
 set @tmpType = 'premium' 
ELSE iF(@Trans_type = 'subscr_cancel')  
     set    @tmpType = 'basic'
0
ответ дан 1 December 2019 в 09:32
поделиться

попробуйте

IF(@Trans_type = 'subscr_signup')    
BEGIN 
 set @tmpType = 'premium' 
 END
ELSE iF(@Trans_type = 'subscr_cancel')  
  begin
     set    @tmpType = 'basic'  
  END
-1
ответ дан 1 December 2019 в 09:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: