We're Moving!

The Vertica Forum is moving to a new OpenText Analytics Database (Vertica) Community.

Join us there to post discussion topics, learn about

product releases, share tips, access the blog, and much more.

Create My New Community Account Now


Evaluate true/false on string saved expression — Vertica Forum

Evaluate true/false on string saved expression

Hi,
if a have a stored expressions in a column, can I evaluate it to true or false?

for example,
I have a column with values like:
exp (column name)
1=1
1=1 and 'a'<>'b'

and want to get back:
exp eval_result
1=1 true
1=1 and 'a'<>'b' true
1=1 and 'a'='l' true

is it possible?

Answers

  • Jim_KnicelyJim_Knicely - Select Field - Administrator
    edited May 2019

    My immediate thought is to generate SQL statements to evaluate the expressions...

    Example:

    dbadmin=> SELECT * FROM boolean_operators;
           exp
    ------------------
     1=1
     1=1 and 'a'<>'b'
     1=1 and 'a'='l'
    (3 rows)
    
    dbadmin=> \! vsql -Atc "SELECT 'SELECT ''' || REPLACE(exp, CHR(39), CHR(39) || CHR(39)) || ''' exp, (SELECT ' || exp || ') eval_resuls;' FROM boolean_operators;" | vsql
     exp | eval_resuls
    -----+-------------
     1=1 | t
    (1 row)
    
           exp        | eval_resuls
    ------------------+-------------
     1=1 and 'a'<>'b' | t
    (1 row)
    
           exp       | eval_resuls
    -----------------+-------------
     1=1 and 'a'='l' | f
    (1 row)
    

    Or this:

    dbadmin=> \! vsql -Atc "SELECT 'SELECT ''' || REPLACE(exp, CHR(39), CHR(39) || CHR(39)) || ''' exp, (SELECT ' || exp || ') eval_resuls ' || DECODE(LEAD(exp) OVER (ORDER BY 1), NULL, '', 'UNION ALL') FROM boolean_operators;" | vsql
           exp        | eval_resuls
    ------------------+-------------
     1=1 and 'a'='l'  | f
     1=1              | t
     1=1 and 'a'<>'b' | t
    (3 rows)
    

Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Emoji
Image
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file