🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 40.4\. 表达式 所有在PL/pgSQL语句里使用的表达式都是用服务器的普通 SQL执行器进行处理的。 例如,当要写一个如下的PL/pgSQL声明时 ``` IF _expression_ THEN ... ``` PL/pgSQL会通过在SQL引擎中输入类似下面的查询来计算表达式 ``` SELECT _expression_ ``` 一旦形成`SELECT`命令,任何出现的PL/pgSQL变量名会由参数取代, 正如在[Section 40.10.1](#calibre_link-1045)讨论的那样。 因此,只需要定义一次SELECT查询计划, 之后可以重复使用。也就是说,第一次使用表达式时, 本质上是生效的是`PREPARE`命令。 例如,我们声明两个整型变量`x`和`y`: ``` IF x < y THEN ... ``` 后台实际执行的是: ``` PREPARE _statement_name_(integer, integer) AS SELECT $1 < $2; ``` 并且,一条`EXECUTE`说明语句会处于预备状态, 以后每一次执行`IF`语句时都会调用该说明语句, 将当前PL/pgSQL变量的值提供为参数值。 通常情况下,对于PL/pgSQL用户来说, 这样做并不是特别重要,不过, 当在进行错误诊断时,如果知道这一点的话会很有用。 更多详细信息参阅[Section 40.10.2](#calibre_link-1573)。