column
予約語です 。二重引用符で囲まない限り、識別子として使用することはできません。例:"column"
。
しかし、そうすべきだという意味ではありません。予約語を識別子として使用しないでください。これまで。
に...
名前に2010が含まれる列のリストを選択します:
..この関数を使用して、システムカタログテーブル pg_attribute
から動的にSQLコマンドを作成できます。 :
CREATE OR REPLACE FUNCTION f_build_select(_tbl regclass, _pattern text)
RETURNS text AS
$func$
SELECT format('SELECT %s FROM %s'
, string_agg(quote_ident(attname), ', ')
, $1)
FROM pg_attribute
WHERE attrelid = $1
AND attname LIKE ('%' || $2 || '%')
AND NOT attisdropped -- no dropped (dead) columns
AND attnum > 0; -- no system columns
$func$ LANGUAGE sql;
電話:
SELECT f_build_select('weather_data', '2010');
次のようなものを返します:
SELECT foo2010, bar2010_id, FROM weather_data;
戻りタイプが不明であるため、これを完全に動的にすることはできません。 実際にクエリを作成するまで。