このコードが何を意味し、どのように機能するかを誰かに説明してもらえますか? たとえば、テーブル STUDENTS があります。
gname lname
-------------
vi23 kola
vi34 red
この連結関数コードは、テーブルに関連してどのように機能しますか?
CREATE FUNCTION concat (text, text) RETURNS text AS $$
DECLARE
t text;
BEGIN
IF character_length($1) > 0 THEN
t = $1 ||', '|| $2;
ELSE
t = $2;
END IF;
RETURN t;
END;
$$ LANGUAGE plpgsql;
CREATE AGGREGATE pegar (
sfunc = concat,
basetype = text,
stype = text,
initcond = ''
);
$1
とは$2
それぞれ gname と lname のパラメーターですか、それとも集約関数 pegar の basetype と stype と同じですか? このコードでは何が起こっていますか?
IF character_length($1) > 0 THEN
t = $1 ||', '|| $2;
ELSE
t = $2;