根据查询结果将值设置为变量(PL/pgSQL样式)

OTA*_*TAR 3 postgresql plpgsql postgresql-9.2

我需要做的是使用EXECUTING查询为变量设置一个值.

在纯SQL风格中,我可以执行以下操作:

// here declaring function and etc...
DECLARE cnt INTEGER;

EXECUTE 'SELECT COUNT(*) FROM t' INTO cnt;
Run Code Online (Sandbox Code Playgroud)

如何以PL/pgSQL函数的形式实现相同的功能?以下伪代码的正确语法是什么?(以下显然是错误的语法)

cnt :=  EXECUTE ( 'SELECT COUNT(*) FROM t' )   ;
Run Code Online (Sandbox Code Playgroud)

小智 16

我认为你在寻找的是:

cnt := COUNT(*) FROM t;
Run Code Online (Sandbox Code Playgroud)


Rob*_*rto 8

你可以使用SELECT INTO

DECLARE cnt INTEGER;
SELECT INTO cnt count(*) FROM t;
Run Code Online (Sandbox Code Playgroud)

  • 我相信它是选择计数(*)到cnt (2认同)

小智 5

不确定“plpgsql 风格”是什么意思。您显示的语法完全可以,如文档中所示。