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-

https://www.postgresql.org/docs/current/static/plpgsql-statements.html#plpgsql-statements-executing-dyn

dynamic sql query in postgres


Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -