1
我有一個PL/pgSQL裏,像這樣確定傳遞給PG功能列名
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
並根據傳遞給函數的col找出函數中的列名。那可能嗎?