1. ホーム
  2. database

[解決済み] PL/pgSQLでクエリ結果を変数に格納する。

2022-04-25 02:36:45

質問

PostgreSQLの手続き言語であるPL/pgSQLで、問い合わせの結果を変数に代入するにはどうすればよいですか?

関数があるのですが

CREATE OR REPLACE FUNCTION test(x numeric)
RETURNS character varying AS
$BODY$
DECLARE
name   character varying(255);
begin
 name ='SELECT name FROM test_table where id='||x;

 if(name='test')then
  --do somthing
 else
  --do the else part
 end if;
end;
return -- return my process result here
$BODY$
LANGUAGE plpgsql VOLATILE

上記の関数で、このクエリの結果を保存する必要があります。

'SELECT name FROM test_table where id='||x;

を変数 name .

どのように処理するのですか?

どのように解決するのですか?

あなたが探しているのは SELECT select_expressions INTO :

select test_table.name into name from test_table where id = x;

これで name から test_table ここで id は関数の引数で、それを name 変数を使用します。のテーブル名のプレフィクスを省かないでください。 test_table.name でないと、曖昧な参照で苦情が来ることになります。