提问人:Robbendebiene 提问时间:10/27/2023 最后编辑:Robbendebiene 更新时间:10/27/2023 访问量:36
在 PostgreSQL 中创建系统标识符并将其传递给函数
Create and pass a system identifier to a function in PostgreSQL
问:
我的主要目标是仅在xml元素不为空时创建/输出xml元素。如果它是空的,则应返回。我正在为此使用本机函数。因此,如果我调用它将返回,而在这种情况下,我的目标是返回。NULL
xmlelement()
SELECT xmlelement(name "my-element", NULL)
<my-element/>
NULL
我尝试简单地包装如下函数,以便当任何输入参数为:xmlelement
NULL
NULL
CREATE OR REPLACE FUNCTION xml_noempty_element(label name, data xml) RETURNS xml AS
$$
SELECT xmlelement(label, data)
$$
LANGUAGE SQL IMMUTABLE STRICT;
可悲的是,这并不能验证。
甚至可以创建一个采用系统标识符的 PostgreSQL 函数吗?如果是,我如何创建标识符/名称并将其传递给函数?
我知道我可以做如下代码来实现我的主要目标:
SELECT CASE
WHEN EXISTS(SELECT FROM my_xml_rows) THEN
xmlelement(name "my-element",
( SELECT xmlagg(xmlelement) FROM my_xml_rows )
)
END;
但是,这将调用查询两次,我试图避免。
我想我的另一个选择是绕一圈。NULLIF((QUERY), '<my-element/>')
答: 暂无答案
评论