ArtyomovAnton
@ArtyomovAnton
PHP и всё что рядом

Почему с CASE работает, а с IF — нет?

Здравствуйте. Создаю функцию для триггера.
Почему через IF не создается?
CREATE FUNCTION my_trigger_finc() RETURNS trigger AS 
'DECLARE 
    myVar numeric DEFAULT 0;
BEGIN
    myVar     := IF NEW."TYPE_SCHET" = ''d8b24c5b-dd1f-488f-9f75-af7bbc45cb5a'' THEN 1 ELSE 0 END IF;
return NEW;
END;' LANGUAGE  plpgsql;


А вот через CASE норм
CREATE FUNCTION my_trigger_finc() RETURNS trigger AS 
'DECLARE 
    myVar numeric DEFAULT 0;
BEGIN
    myVar     := CASE WHEN NEW."TYPE_SCHET" = ''d8b24c5b-dd1f-488f-9f75-af7bbc45cb5a'' THEN 1 ELSE 0 END;
return NEW;
END;' LANGUAGE  plpgsql;
  • Вопрос задан
  • 188 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rickkk
@Rickkk
Ну вообще в case после then или else нельзя указывать ничего, кроме результата по данному условию -
вот ссылка А в IF, можно писать
какие-либо выражения и операторы. IF не обязательно должен возвращать результат, а CASE обязательно. Поскольку IF неоднозначен, поэтому его вывод нельзя присваивать переменной, как ты это делаешь в 1-м варианте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы