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:哦,有趣的是,對於一個雄心勃勃的開發人員來說,這可能是低掛的。 –