If field like 'something' clause in void function - Postgresql

If field like 'something' clause in void function - Postgresql

我需要使用此功能将团队从 pl_raw 加载到新的 table 命名游戏。 在pl_raw中为所有数据。现在..这个函数为了订购数据 tables...

CREATE OR REPLACE FUNCTION loadGames() RETURNS void AS $$
BEGIN

IF (SELECT * from pldata.pl_raw where venue = 'Away') THEN
INSERT INTO definitiu.game (date_game, home_team, away_team)
SELECT game_date, opposition_id,team_id from pldata.pl_raw;

ELSIF (SELECT * from pldata.pl_raw where venue = 'Home') THEN
INSERT INTO definitiu.game (date_game, home_team, away_team)
SELECT game_date, team_id, opposition_id from pldata.pl_raw;
END IF;

END; $$
LANGUAGE PLPGSQL;

函数编译通过,但是,Postgres return 当我执行这个函数时出现这个错误:

ERROR: subquery must return only one column LINE 1: SELECT (SELECT * from pldata.pl_raw where venue = 'Away') ^ QUERY: SELECT (SELECT * from pldata.pl_raw where venue = 'Away') CONTEXT: PL/pgSQL function loadgames() line 4 at IF

********** Error **********

ERROR: subquery must return only one column SQL state: 42601 Context: PL/pgSQL function loadgames() line 4 at IF

使用 EXISTS:

IF EXISTS (SELECT * from pldata.pl_raw where venue = 'Away') THEN