I have a PL/pgsql function like so
CREATE OR REPLACE FUNCTION foo(colname TEXT, col INT)
RETURNS REAL AS $$
BEGIN
IF (colname = 'a') THEN
RETURN (col * 1.5);
ELSIF (colname = 'b') THEN
RETURN (col * 2.5);
ELSIF (colname = 'c') THEN
RETURN (col * 3.5);
.. and so on ..
ELSE
RAISE EXCEPTION 'Invalid column!';
END IF;
RETURN NULL;
END;
$$
LANGUAGE plpgsql;
The function allows me to do stuff like
SELECT foo('a', a) FROM table WHERE
I would like to make this nicer, and not have to pass the column name, if I can help it. In other words, I would like to be able to do
SELECT foo(a) FROM table WHERE
and figure out the column name in the function based on the col passed to the function. Is that possible?