मैं mysql दृश्य के साथ काम कर रहा हूं और मैं उस दृश्य पर IF ELSE कथन का उपयोग करना चाहता हूं। इसmysql देखें अगर अन्य समस्या
#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 त्रुटि syntax to use near 'select hie_code_1 from hs_hr_emp_level L END hie_code_1 in (select hie_code_' at line 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
'है getUser) 'होना चाहिए [CURRENT_USER() या USER()] (http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_current-user)? –
प्रश्न –
अपडेट किया गया इसके अलावा, एक दृश्य सामान्य चयन कथन होना चाहिए, और वे संग्रहित प्रक्रियाओं जैसे ब्लॉक प्रवाह नियंत्रण की अनुमति नहीं देते हैं। इस प्रकार, आप [IF() या CASE का उपयोग करना चाहेंगे ... WHEN..END] (http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html) –