**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答复。
此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
5天前关闭。
Improve this question
这是我的定制类型。
CREATE TYPE salary_info AS (
max_salary numeric,
min_salary numeric
);
CREATE FUNCTION test_1(city varchar(15)) RETURNS salary_info AS $$
SELECT
MAX(salary) AS min_salary,
MIN(salary) AS max_salary
FROM employees
WHERE city = test_1.city;
$$ LANGUAGE SQL;
SELECT test_1('New York');
我得到了这个结果:enter image description here
但这个示例可以工作:
CREATE FUNCTION test_4(city varchar(15)) RETURNS salary_info AS $$
SELECT 1.0, 2.0
$$ LANGUAGE SQL;
SELECT test_4('New York');
输出(1.0、2.0)
会有什么问题呢?
1条答案
按热度按时间yqlxgs2m1#
尽管不是问题的原因,但始终完全限定函数中使用的查询中的标识符,以防止潜在的名称冲突;例如:
即使创建的函数的参数名与查询表中的列名不同,也不能保证将来不会有人无意中(或恶意地)创建冲突的列。