2013-02-09 18 views
22

जबकि IIF stamtement, मेज और बयान नीचे दिए गए लेखन मैं कोई त्रुटि मिलती है,ओरेकल IIF वक्तव्य

कथन:

SELECT IIF(EMP_ID=1,'True','False') from Employee; 

त्रुटि: 00907-याद आ रही सही parantheses

CREATE TABLE SCOTT.EMPLOYEE 
(
    EMP_ID  INTEGER       NOT NULL, 
    EMP_FNAME VARCHAR2(30 BYTE)    NOT NULL, 
    EMP_LNAME VARCHAR2(30 BYTE)    NOT NULL, 
    EMP_ADDRESS VARCHAR2(50 BYTE)    NOT NULL, 
    EMP_PHONE CHAR(10 BYTE)     NOT NULL, 
    EMP_GENDER CHAR(1 BYTE) 
) 

कृपया अपना इनपुट प्रदान करें।

+2

AFAIK , ओरेकल में आईआईएफ फ़ंक्शन नहीं है। आप इसके बजाए केस का उपयोग कर सकते हैं: 'CASE का चयन करें जब emp_id = 1 फिर' सत्य 'ईएलएसई' कर्मचारी 'से' गलत 'अंत – romar

उत्तर

40

ओरेकल ऐसे आईआईएफ फ़ंक्शन प्रदान नहीं करता है।

DECODE Funciton: इसके बजाय, निम्न विकल्पों में से एक का उपयोग करने की कोशिश

SELECT DECODE(EMP_ID, 1, 'True', 'False') from Employee 

CASE Function:

SELECT CASE WHEN EMP_ID = 1 THEN 'True' ELSE 'False' END from Employee 
14

दो अन्य विकल्प:

  1. NULLIF और NVL2 का संयोजन। आप केवल यह उपयोग कर सकते हैं emp_idNOT NULL है, जो इसे अपने मामले में है:

    select nvl2(nullif(emp_id,1),'False','True') from employee; 
    
  2. (एक तथाकथित खोजा CASE अभिव्यक्ति माउंट Schneiders प्रयुक्त) सरल CASE expression

    select case emp_id when 1 then 'True' else 'False' end from employee; 
    
संबंधित मुद्दे