我尝试创建一个不可变的CONCAT()
。为此,我尝试使用以下 SQL 查询。
选项 1
CREATE FUNCTION immutable_concat(VARIADIC text[])
RETURNS text
LANGUAGE internal IMMUTABLE PARALLEL SAFE AS 'text_concat';
选项 2
CREATE FUNCTION immutable_concat(VARIADIC text[])
RETURNS text
LANGUAGE sql IMMUTABLE PARALLEL SAFE
RETURN array_to_string($1, '');
结果,我得到了一个可以很好地处理文本的函数。但是,如何创建一个类似的函数,该函数将接受一个不仅包含文本元素的数组?
CONCAT()
允许我们执行以下 SQL 查询:
SELECT concat(CURRENT_DATE, true, false, 1, 'text');
结果,我们将得到以下字符串:
2025-03-07tf1text
理想情况下,我想创建一个可以采用不同元素的函数。我的意思是:
SELECT immutable_concat(CURRENT_DATE, true, false, 1, 'text');