我在这里有一个声明,从我能说的就可以了。如果评估条件并将结果粘贴到变量中。我需要知道的是如何从变量中读取值并显示它。感谢
DO
$do$
DECLARE result text;
BEGIN
IF EXISTS (select 1 from siteName where SiteNameID=9) THEN
SELECT 'Yes' into result;
ELSE
SELECT 'No' into result;
END IF;
END
$do$
答案 0 :(得分:1)
如果通过显示,您的意思是输出到STDOUT:
RAISE NOTICE 'result: %', result;
http://www.postgresql.org/docs/current/static/plpgsql-errors-and-messages.html
答案 1 :(得分:0)
DO声明无法返回任何内容。您可以使用通知,就像Denis已经展示的那样。
但为什么你需要一个功能呢?您可以使用常规查询,如下所示:
SELECT CASE
WHEN input.SiteNameID = siteName.SiteNameID THEN 'Yes'
ELSE 'No'
END AS result
FROM (SELECT 9 AS SiteNameID) input
LEFT JOIN siteName ON input.SiteNameID = siteName.SiteNameID;
(未经测试....)
答案 2 :(得分:0)
您无法从DO
命令返回数据。为此,您需要一个功能。使用DO
命令限制来自RAISE
的消息,如Denis提供的消息,或者您可以将数据写入表或临时表,并从中进行选择。
DO
$do$
BEGIN
CREATE TEMP TABLE site9_exists AS
SELECT EXISTS (SELECT 1 FROM sitename WHERE sitenameid=9) AS result;
END
$do$;
SELECT result FROM site9_exists;
当然,对于这个简单的例子,你根本不需要DO
命令......