1
这是从官方文档(http://www.postgresql.org/docs/9.4/static/plpgsql-control-structures.html)PostgreSQL的CASE语句
和两种形式的CASE:
CASE ... WHEN ... THEN ... ELSE ... END CASE
CASE WHEN ... THEN ... ELSE ... END CASE
这不起作用:
select case when 1 < 2 then 'a' else 'b' end case from pg_database limit 1;
它与end
代替end case
,虽然:
select case when 1 < 2 then 'a' else 'b' end from pg_database limit 1;
这是在PostgreSQL 9.4.6。
为什么官方文档中的语法与服务器明显需要的语法不匹配?
现代SQL也允许SQL'CASE'中的表达式列表。程序'CASE'基于现代标准,SQL' CASE'仍然符合ANSI SQL 99(缺少可选功能F263)。原因,为什么SQL CASE缺少这个功能很简单 - 没有人为Postgres写它。 –
@PavelStehule:哦,有趣的是,对于一个雄心勃勃的开发人员来说,这可能是低挂的。 –