我正在使用 PostgreSQL 8.1。
我对这个函数中隐式转换的情况感到困惑:
CREATE OR REPLACE FUNCTION this_is_weird(v_input TEXT)
RETURNS TEXT AS $$
BEGIN
IF v_input > 113 THEN
RETURN 'answer1';
ELSE
RETURN 'answer2';
END IF;
END;
$$ LANGUAGE plpgsql;
输入'17'
(作为字符串)给出返回值'answer1'
。但是如果我输入
SELECT '17' > 113
在 psql 中,我得到'f'
.
(我当然可以通过添加明确的演员来解决这个问题,v_input::integer
.)