0
連結値の結果を持つ関数を作成しようとしています。POSTGRESQL:Concat値の関数結果
は以下を参照:
CREATE OR REPLACE FUNCTION select_name()
RETURNS TABLE(name text) AS
$BODY$
BEGIN
RETURN QUERY
select
cast(first_name as text) ||' ' || cast(middle_name as text) ||' ' || cast(last_name as text) as name
from table_name;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;
しかし
select * from select_name();
を照会すると、それがエラーを示しています。私はここにこだわっている
ERROR: relation "select_name" does not exist
LINE 8: select * from select_name
^
********** Error **********
ERROR: relation "select_name" does not exist
SQL state: 42P01
Character: 159
。 助けてください。
あなたの機能は私のために機能します...エラーメッセージは、かっこがクエリに残っているように見えます。私は 'LINE 8'と' Character:159'についても疑いがあります。多分あなたは問題を明確にするいくつかの詳細を省略しました。ところで、「firstname」|| NULLはNULLである。 –
私はLaurenzに同意します:あなたは '()'を使用するのを忘れていて、 'select * from select_name'を実行したようです。無関係ですが、関数内の式を 'ヌル値を適切に扱うためにconcat_ws(' '、first_name、middle_name、last_name)をnameとして選択するように簡略化することができます(Plus:PL/pgSQLは必要ありません、プレーンなSQL関数で十分です) –
ありがとうございます。 :)私はもう一度それを見直し、調整を加えました。私はこれを使用しました: 'cast(first_name || '' || middle_name || '' || last_name as text) – fLen