Re: "and then" / "or else"
От | Michael Glaesemann |
---|---|
Тема | Re: "and then" / "or else" |
Дата | |
Msg-id | 76AE4E3A-17DD-4D9E-861D-88C70F1A1A04@seespotcode.net обсуждение исходный текст |
Ответ на | "and then" / "or else" (Christian Schröder <cs@deriva.de>) |
Ответы |
Re: "and then" / "or else"
|
Список | pgsql-general |
On Nov 17, 2007, at 3:53 , Christian Schröder wrote: > Unfortunately, the trick from the docs (chapter 4.2.12) using > "case ... then" does not work inside an "if" statement (the "then" > of the "case" is interpreted as belonging to the "if" and thus > leads to a syntax error). I think if you use parentheses you can avoid the syntax error: CREATE FUNCTION test_case_in_if (in in_a boolean, in in_b boolean, in in_c boolean) RETURNS text STABLE STRICT LANGUAGE plpgsql AS $body$ begin if (CASE WHEN in_a then (in_b and in_c) else in_b end) then return 'first branch'; else return 'second branch'; end if; END $body$; test=# select test_case_in_if(true, true, true); test_case_in_if ----------------- first branch (1 row) test=# select test_case_in_if(true, false, true); test_case_in_if ----------------- second branch (1 row) test=# select test_case_in_if(false, true, false); test_case_in_if ----------------- first branch (1 row) Michael Glaesemann grzm seespotcode net
В списке pgsql-general по дате отправления: