Обсуждение: why does documentation use "END CASE" when that doesn't work

Поиск
Список
Период
Сортировка

why does documentation use "END CASE" when that doesn't work

От
Susan Cassidy
Дата:
The documentation says:
CASE search-expression   WHEN expression [, expression [ ... ]] THEN     statements [ WHEN expression [, expression [ ... ]] THEN     statements   ... ] [ ELSE     statements ]
END CASE;

And it repeats the "END CASE" phrase in other examples.  

However, that doesn't work. You have to just use "END".

Shouldn't the documentation be fixed?
Susan


Re: why does documentation use "END CASE" when that doesn't work

От
Tom Lane
Дата:
Susan Cassidy <susan.cassidy@decisionsciencescorp.com> writes:
> The documentation says:
> CASE search-expression
>     WHEN expression [, expression [ ... ]] THEN
>       statements
>   [ WHEN expression [, expression [ ... ]] THEN
>       statements
>     ... ]
>   [ ELSE
>       statements ]
> END CASE;

> And it repeats the "END CASE" phrase in other examples.

> However, that doesn't work.  You have to just use "END".

> Shouldn't the documentation be fixed?

No ... you're confusing the SQL CASE expression with the plpgsql CASE
statement.

http://www.postgresql.org/docs/9.3/static/functions-conditional.html

http://www.postgresql.org/docs/9.3/static/plpgsql-control-structures.html#PLPGSQL-CONDITIONALS

It's a bit unfortunate that plpgsql's statement looks enough like the
expression to cause confusion, yet not exactly like the expression.
The decorated END is consistent with other things in plpgsql such as
END IF, though.

            regards, tom lane


Re: why does documentation use "END CASE" when that doesn't work

От
Jov
Дата:

plpgsql case use end case,while sql case use end,they are different language

jov

在 2014-2-26 上午8:32,"Susan Cassidy" <susan.cassidy@decisionsciencescorp.com>写道:
The documentation says:
CASE search-expression   WHEN expression [, expression [ ... ]] THEN     statements [ WHEN expression [, expression [ ... ]] THEN     statements   ... ] [ ELSE     statements ]
END CASE;

And it repeats the "END CASE" phrase in other examples.  

However, that doesn't work. You have to just use "END".

Shouldn't the documentation be fixed?
Susan