PostgreSQL 11从入门到精通(视频教学版)
上QQ阅读APP看书,第一时间看更新

6.5 条件判断函数

条件判断函数亦称为控制流程函数,根据满足的条件而执行相应的流程。在PostgreSQL中,进行条件判断的函数为CASE。

1. CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END

该函数表示,如果expr值等于某个vn,则返回对应位置THEN后面的结果;如果与所有值都不相等,则返回ELSE后面的rn。

【例6.58】使用CASE value WHEN语句执行分支操作,输入语句如下:

     SELECT CASE 2 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;

语句执行后,结果如图6-58所示。

图6-58 SQL语句执行结果

CASE后面的值为2,与第二条分支语句WHEN后面的值相等,因此返回结果为“two”。

2. CASE WHEN v1 THEN r1 [WHEN v2 THEN r2] ELSE rn] END

该函数表示,某个vn值为TRUE时,返回对应位置THEN后面的结果;如果所有值都不为TRUE,则返回ELSE后的rn。

【例6.59】使用CASE WHEN语句执行分支操作,输入语句如下:

     SELECT CASE WHEN 1<0 THEN 'true' ELSE 'false' END;

语句执行后,结果如图6-59所示。

图6-59 SQL语句执行结果

1<0的结果为FALSE,因此函数返回值为ELSE后面的“false”。

提 示

一个CASE表达式的默认返回值类型是任何返回值的相容集合类型,具体情况视其所在语境而定。用在字符串语境中,返回结果为字符串;用在数字语境中,返回结果为十进制值、实值或整数值。