1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| CREATE TABLE t ( nombre numeric, solution1 numeric, solution2 numeric );
INSERT INTO t ( nombre, solution1, solution2 ) VALUES ( 4, null, null );
INSERT INTO t ( nombre, solution1, solution2 ) VALUES ( 9, null, null );
INSERT INTO t ( nombre, solution1, solution2 ) VALUES ( 16, null, null );
CREATE TYPE type_x AS ( solution numeric );
CREATE FUNCTION f( nombre numeric ) RETURNS SETOF type_x AS $$
DECLARE
x type_x;
BEGIN
x.solution := SQRT( nombre ); RETURN next x;
x.solution := -SQRT( nombre ); RETURN next x;
RETURN;
END;
$$ LANGUAGE plpgsql;
UPDATE t SET solution1 = ( SELECT solution FROM f( nombre ) ORDER BY solution DESC LIMIT 1 );
UPDATE t SET solution2 = ( SELECT solution FROM f( nombre ) ORDER BY solution ASC LIMIT 1 ); |
Partager