これがあなたの望むものかどうかはわかりませんが、postgresql では属性表記row.full_name
と関数表記full_name(row)
は同等です。
それはテーブルを取ることを意味します
CREATE TABLE people (
first_name text,
last_name text
);
および関数:
CREATE FUNCTION full_name(people) RETURNS text AS $$
SELECT $1.first_name || ' ' || $1.last_name;
$$ LANGUAGE SQL;
次のように呼び出します:
select full_name from people
それはあなたが必要なものですか?
速度を上げるために、式インデックスを作成できます:
CREATE INDEX people_full_name_idx ON people
USING GIN (to_tsvector('english', full_name(people)));
または、すべてをマテリアライズドビューに保存します。
ここから取られた例:http : //bernardoamc.github.io/sql/2015/05/11/postgres-virtual-columns/