-- FUNCTION: dbo.translatebdg(text)

-- DROP FUNCTION IF EXISTS dbo.translatebdg(text);

CREATE OR REPLACE FUNCTION dbo.translatebdg(
	p_bdgcod text)
    RETURNS text
    LANGUAGE 'plpgsql'
    COST 100
    VOLATILE PARALLEL UNSAFE
AS $BODY$
DECLARE
    resultName TEXT;
BEGIN
    -- ใช้ string_to_array เพื่อแยก text '24,33' เป็น array ['24','33']
    -- ใช้ ANY เพื่อหาว่า bdgcod อยู่ใน array นั้นไหม
    -- ใช้ string_agg เพื่อรวมชื่อที่ได้กลับมาเป็น text เดียว คั่นด้วย ', '
    SELECT string_agg(bdgnam, ', ')
    INTO resultName
    FROM dbo.bdgmst
    WHERE bdgcod = ANY(string_to_array(p_bdgcod, ','));

    -- ถ้าหาไม่เจอเลย ให้คืนค่าเดิมกลับไป (Optional: หรือจะคืน NULL ก็ได้)
    IF resultName IS NULL THEN
        RETURN p_bdgcod;
    END IF;

    RETURN resultName;
END;
$BODY$;

ALTER FUNCTION dbo.translatebdg(text)
    OWNER TO postgres;