Dynamic SQL (EXECUTE) as condition for IF statement

后端 未结 3 2036
予麋鹿
予麋鹿 2020-12-03 21:28

I want to execute a dynamic SQL statement, with its returned value being the conditional for an IF statement:

IF EXECUTE \'EXISTS (SELECT 1 FROM         


        
3条回答
  •  孤城傲影
    2020-12-03 22:05

    Matt,

    From the syntax above, you're writing PL/pgSQL, not SQL. On tht assumption, there are two ways to do what you want, but both will require two lines of code:

    EXECUTE 'SELECT EXISTS (SELECT 1 FROM ' || table_variable || ' );' INTO boolean_var;
    
    IF boolean_var THEN ...
    

    Or:

    EXECUTE 'SELECT 1 FROM ' || table_variable || ' );';
    
    IF FOUND THEN ...
    

    "FOUND" is a special variable which checks if the last query run returned any rows.

提交回复
热议问题