mysql view if else проблема

Я работаю с представлением mysql и хочу использовать оператор IF ELSE для этого представления. это дает мне такую ​​ошибку

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'if(getUser()="") THEN]
        select hie_code_1 from hs_hr_emp_level L,hs_hr_u' at line 7 

Это мое мнение

drop view if exists   vw_hs_hr_employee;

CREATE VIEW vw_hs_hr_employee  as 
select * from hs_hr_employee where 
hie_code_1 in 
(
BEGIN

    if(getUser()="") THEN
        select hie_code_1 from hs_hr_emp_level L
    ELSE
           select hie_code_1 from hs_hr_emp_level L,hs_hr_users U
             where L.emp_number=U.emp_number
               and L.emp_number=getUser()
               and ( U.def_level=1 or U.def_level=4 )
    END if

)  

ИЗМЕНИТЬ вот моя функция

CREATE  FUNCTION `getUser`() RETURNS char(50) CHARSET latin1
RETURN  @user

Если кто-то может мне помочь, спасибо

ОБНОВЛЕННЫЙ запрос

CREATE VIEW vw_hs_hr_employee  as
select * from hs_hr_employee where
CASE getUser()
        WHEN  ''
    THEN 
    select hie_code_1 from hs_hr_emp_level L
    END
hie_code_1 in ( select hie_code_1 from hs_hr_emp_level L,hs_hr_users U   where L.emp_number=U.emp_number and L.emp_number=getUser() and  ( U.def_level=1 or U.def_level=4 )   )
or
 hie_code_3 in ( select hie_code_3 from hs_hr_emp_level L,hs_hr_users U   where L.emp_number=U.emp_number and L.emp_number=getUser() and  U.def_level=2   )
or
  hie_code_4 in ( select hie_code_4 from hs_hr_emp_level L,hs_hr_users U   where L.emp_number=U.emp_number and L.emp_number=getUser() and  U.def_level=3 ) 

синтаксис ошибки givinign для использования рядом с 'select hie_code_1 from hs_hr_emp_level L END hie_code_1 in (select hie_code_' в строке 6

Готово

drop view if exists  vw_hs_hr_employee;
CREATE VIEW vw_hs_hr_employee  as
select * from hs_hr_employee e where CASE WHEN getUser()=''
    THEN
     e.emp_number is not null
    ELSE
hie_code_1 in ( select hie_code_1 from hs_hr_emp_level L,hs_hr_users U   where L.emp_number=U.emp_number and L.emp_number=getUser() and  ( U.def_level=1 or U.def_level=4 )   )
or
 hie_code_3 in ( select hie_code_3 from hs_hr_emp_level L,hs_hr_users U   where L.emp_number=U.emp_number and L.emp_number=getUser() and  U.def_level=2   )
or
  hie_code_4 in ( select hie_code_4 from hs_hr_emp_level L,hs_hr_users U   where L.emp_number=U.emp_number and L.emp_number=getUser() and  U.def_level=3 )

end
5
задан Roshan Wijesena 19 August 2011 в 08:17
поделиться