2013-06-19 41 views
2

我需要做的是使用EXECUTING查询为变量设置一个值。根据查询结果将值设置为一个变量(采用PL/pgSQL风格)

在纯SQL的风格,我可以做类似如下:

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

EXECUTE 'SELECT COUNT(*) FROM t' INTO cnt; 

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

cnt := EXECUTE ('SELECT COUNT(*) FROM t') ; 

回答

3

不确定你的意思是“plpgsql style”。您显示的语法完全正常,如documentation中所示。

+0

在 “PLPGSQL风格的” 我的意思是'变量:=',但看到的,这句法不适用于动态命令。谢谢。 – RIKI

15

我知道你在寻找的是:

cnt := COUNT(*) FROM t; 
4

您可以使用SELECT INTO

DECLARE cnt INTEGER; 
SELECT INTO cnt count(*) FROM t; 
+2

这是我相信cnt中的select count(*) –

相关问题