Postgresql: Set variable equal to a specific entry in an array -
i have table newb
looks this:
tablename | columnname ----------------------- walls | id floors | rowid
first create array:
create table finalsb ( tabnam newb array );
then put data table array:
insert finalsb values(array(select newb newb));
the following statement displays 'id'
table newb:
select tabnam[1].columnname finalsb;
i want like:
declare colvar varchar,tabvar varchar colvar = select tabnam[1].columnname finalsb; tabvar = select tabnam[1].tablename finalsb;
my main goal use:
select * tabvar colvar = "somevalue";
can tell me how can declare select
statement variable?
you have use select ... variable
construct:
do $$ declare colvar varchar; tabvar varchar; begin select tabnam[1].columnname colvar finalsb; select tabnam[1].tablename tabvar finalsb; raise notice 'tabvar: %, colvar: %', tabvar, colvar; end $$;
to run dynamic sql plpgsql's execute
needed:
execute format('select * %s %s = "somevalue"', quote_ident(tabvar), quote_ident(colvar));
for instance in form of functions' return statement:
return query execute format('select * %s %s = "somevalue"', quote_ident(tabvar), quote_ident(colvar));
recommended reading:
https://www.postgresql.org/docs/current/static/plpgsql-statements.html#plpgsql-statements-sql-
Comments
Post a Comment