Douglas Little wrote:
> I need to evaluate an expression that I have stored in a table, and not sure how to force evaluation
> of a column value.
[...]
> The pass/fail query looks something like this
>
> Update testscore
> Set metricstatus = case when table_a.col_a = table_b.col_b then 'PASS' else 'FAIL' end
> ..
> Where testrunid=x
>
> I want to replace the table_a.col_a = table_b.col_b with the expression stored in the test table and
> evaluate.
>
> I'm thinking - it's dynamic sql, so I need to build the statement and then evaluate using a function.
>
> Anybody have any comments?
I would consider composing the statement in the application code:
SELECT the expression you need, compose the statement, send it
to the database.
If you need to do it on the database side, PL/pgSQL is your friend.
Since PostgreSQL 9.0 you can also use PL/pgSQL in the DO
SQL statement without having to define a function, but that will
probably not help if you need a return value.
Yours,
Laurenz Albe