# 43.4.表情
PL/pgSQL语句中使用的所有表达式都使用服务器的主SQL执行器进行处理。例如,当您编写PL/pgSQL语句时
IF expression THEN ...
PL/pgSQL将通过提供如下查询来计算表达式
SELECT expression
到主SQL引擎。在形成选择
命令时,任何出现的PL/pgSQL变量名都将替换为查询参数,如中详细讨论的第43.11.1节。这样就可以为选择
只需准备一次,然后使用不同的变量值重新用于后续评估。因此,第一次使用表达式时真正发生的事情本质上是准备
命令例如,如果我们声明了两个整数变量十、
和y
,我们写
IF x < y THEN ...
幕后发生的事情相当于
PREPARE statement_name(integer, integer) AS SELECT $1 < $2;
然后这份准备好的声明处决
d每次执行如果
语句,并将PL/pgSQL变量的当前值作为参数值提供。通常情况下,这些细节对PL/pgSQL用户并不重要,但在尝试诊断问题时,了解它们很有用。更多信息见第43.11.2节.
自从*表示
*已转换为选择
命令,它可以包含与普通命令相同的子句选择
除了不能包含顶级协会
, 横断
或除了
条款因此,例如,可以使用
IF count(*) > 0 FROM my_table THEN ...
自从*表示
*之间如果
和然后
被解析为从my_表中选择count(*)>0
这个选择
必须生成一列,但不能超过一行。(如果不生成行,则结果为空。)