Postgresql 如何在PGSQL中设置参数列表的条件
我希望在函数中输入一个整数列表,并在此基础上返回行。在这种情况下,我希望根据雇主id选择一些属性,例如,选择其中雇主id=102103和105 这就是我尝试过的Postgresql 如何在PGSQL中设置参数列表的条件,postgresql,Postgresql,我希望在函数中输入一个整数列表,并在此基础上返回行。在这种情况下,我希望根据雇主id选择一些属性,例如,选择其中雇主id=102103和105 这就是我尝试过的 CREATE OR REPLACE FUNCTION dummy(VARIADIC e_id NUMERIC[]) RETURNS TABLE ( emp_id INT, first_name VARCHAR, last_name VARCHAR, salary INT ) AS $$ BEGIN
CREATE OR REPLACE FUNCTION dummy(VARIADIC e_id NUMERIC[])
RETURNS TABLE (
emp_id INT,
first_name VARCHAR,
last_name VARCHAR,
salary INT
)
AS $$
BEGIN
RETURN QUERY SELECT em.emp_id, em.first_name, em.last_name, em.salary
FROM employee em
WHERE em.emp_id IN e_id;
END; $$
LANGUAGE PLPGSQL;
SELECT *
FROM dummy(102, 103, 105);
错误似乎来自包含WHERE的行。如何根据整数列表e_id进行选择
其中em.emp\u id在e\u id中
由于您处理的是一个数字列表,因此您可以使用而不是:
创建表employeeemp\u id int,名字varchar50,姓氏varchar50,薪水int;
在员工价值观中插入
1、‘a’、‘b’、50、,
2,'c','d',100,
3,'e','f',400
CREATE OR REPLACE FUNCTION dummy(VARIADIC e_id NUMERIC[])
RETURNS TABLE (
emp_id INT,
first_name VARCHAR,
last_name VARCHAR,
salary INT
)
AS $$
BEGIN
RETURN QUERY SELECT em.emp_id, em.first_name, em.last_name, em.salary
FROM employee em
WHERE em.emp_id = any (e_id);
END; $$
LANGUAGE PLPGSQL;
SELECT * FROM dummy(1, 2);
其中em.emp\u id在e\u id中
由于您处理的是一个数字列表,因此您可以使用而不是:
创建表employeeemp\u id int,名字varchar50,姓氏varchar50,薪水int;
在员工价值观中插入
1、‘a’、‘b’、50、,
2,'c','d',100,
3,'e','f',400
CREATE OR REPLACE FUNCTION dummy(VARIADIC e_id NUMERIC[])
RETURNS TABLE (
emp_id INT,
first_name VARCHAR,
last_name VARCHAR,
salary INT
)
AS $$
BEGIN
RETURN QUERY SELECT em.emp_id, em.first_name, em.last_name, em.salary
FROM employee em
WHERE em.emp_id = any (e_id);
END; $$
LANGUAGE PLPGSQL;
SELECT * FROM dummy(1, 2);
emp_id | first_name | last_name | salary
-----: | :--------- | :-------- | -----:
1 | a | b | 50
2 | c | d | 100