Do you mean like this? postgres=# \set v_embed %:v_ssn% postgres=# \echo :v_embed %345% postgres=# SELECT * FROM employee WHERE ssn LIKE :'v_embed'; ssn | name -----------+---------- 123456789 | John Doe (1 row)
On Fri, Jan 13, 2023 at 8:12 AM Ron <ronljohnso...@gmail.com> wrote: > > Pg 12 > > I need to pass a \set variable (in this example named v_ssn) into a LIKE > string. A two-stage process (building v_like from v_ssn, and then using > v_like in the LIKE string) works, and is fine when executing an sql script, > but not so good is there any way to *directly* embed v_ssn in another > string? > > test=# \set v_ssn 345 > test=# \echo :v_ssn > 345 > test=# \set v_like %:v_ssn% > test=# \echo :v_like > %345% > > test=# SELECT * FROM employee WHERE ssn LIKE :'v_like'; > ssn | name | ssn_int > -----------+----------+----------- > 123456789 | John Doe | 123456789 > (1 row) > > As expected, this fails: > > postgres=# SELECT * FROM employee WHERE ssn LIKE :'%v_ssn%'; > ERROR: syntax error at or near ":" > LINE 1: SELECT * FROM employee WHERE ssn LIKE :'%v_ssn%'; > > > -- > Born in Arizona, moved to Babylonia. >