假设你想把insert
函数的返回值和rec.name
放到不同的表中。这是您可以做的(首先create
是表格new_tab
)-
SELECT levenshtein('mystring',lower(rec.Name)) AS L_val;
INSERT INTO new_tab (L_val, rec.name);
上面的用法如下所示。
我猜,您可以使用RAISE INFO 'This is %', rec.name;
来查看值。
CREATE OR REPLACE FUNCTION randomnametest() RETURNS integer AS $$
DECLARE
rec RECORD;
BEGIN
FOR rec IN SELECT * FROM my_table LOOP
SELECT levenshtein('mystring',lower(rec.Name))
AS L_val;
RAISE INFO '% - %', L_val, rec.name;
END LOOP;
RETURN 1;
END;
$$ LANGUAGE plpgsql;
注意-FROM
如果您从 select like 中的函数中选择netxval(sequence_name)
并且没有任何实际表可供选择,即 like SELECT nextval(sequence_name) AS next_value;
,则该子句是可选的,在 Oracle 术语中它将是SELECT sequence_name.nextval FROM dual;
or SELECT function() FROM dual;
。dual
中没有postgreSQL
。
我还认为这ORDER BY
不是必需的,因为我的假设是您的函数levenshtein()
很可能在任何时间点都只返回一个值,因此没有足够的数据来ORDER
.