У меня есть функция PL / pgsql, вот так
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;
Функция позволяет мне делать такие вещи, как
SELECT foo('a', a) FROM table WHERE
Я бы хотел сделать это лучше, и мне не нужно передавать имя столбца, если я могу помочь. Другими словами, я хотел бы иметь возможность сделать
SELECT foo(a) FROM table WHERE
и определите имя столбца в функции на основе столбца, переданного в функцию. Это возможно?