CREATE OR REPLACE FUNCTION test(ITEM_ID VARCHAR)
RETURNS VOID AS $$
DECLARE n1 INT;
n2 INT;
...
n100 INT;
BEGIN
IF ITEM_ID='item1' THEN
SELECT item1 INTO n1 FROM ...;
ELSIF ITEM_ID = 'item2' THEN
SELECT item2 INTO n2 FROM ...;
...
ELSIF ITEM_ID = 'item100' THEN
SELECT item100 INTO n100 FROM ...;
NED IF.
END;
$$ LANGUAGE plpgsql;
ITEM_ID的后缀数字1,2 ...,100和变量n1,n2 ...,n100是对应的! 我尝试将长语句缩短如下,但没有运气!
..
BEGIN
-- eg. select 1 into 'n1', select 2 into 'n2'..., , select N into 'nN'
EXECUTE FORMAT( 'SELECT %1$s INTO %2$s FROM ...;', SUBSTRING(item_id, 5), 'n' || SUBSTRING(item_id, 5) );
END;
...
字符串变量名称(例如'n1','n2'...对应的变量名称n1,n2 ...)!
如何通过分别代表字符串名称('n1','n2'...)的每个变量(n1,n2 ...)分配值?
任何帮助将不胜感激!