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
我需要使用此功能将团队从 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