如果语句在sql查询中

时间:2013-12-21 06:26:40

标签: sql plsql

我在PL / SQL中有一个函数,里面有两个SQL语句,它们如下:

select access_level into v_access from users where user_ID = APEX_UTIL.get_username( APEX_UTIL.get_current_user_id );

for row in ( select distinct sub_category_lu
                  , f_get_display('SUB_CATEGORY', sub_category_lu) display
                 from files
                 where active = 'Y'
                 and publish_date <= sysdate
                 and category_lu =  p_category
      and key in ( 0, snl_key )
      order by substr(sub_category_lu,1,2)
      ) loop

现在基于第一个sql语句的输出,我想在第二个sql语句中添加另一个'and'条件,该语句位于for循环中。

如果v_access是'xyz',那么我想在for循环sql语句中添加一个条件

AND sub_category_lu NOT LIKE '03%' AND sub_category_lu NOT LIKE '04%'

否则不要添加此条件并保持循环如上所述。如何在循环中根据此添加if语句。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

只需添加:

(...) AND (v_access != 'xyz' 
          OR (sub_category_lu NOT LIKE '03%' AND sub_category_lu NOT LIKE '04%'))