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