I get an error while writing the IIF statement, table and the statement given below.
Statement:
SELECT IIF(EMP_ID=1,'True','False') from Employee;
Table:
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) )
Error:
00907-missing right parantheses
Please provide your inputs.
You use IIf to determine if another expression is true or false. If the expression is true, IIf returns one value; if it is false, IIf returns another. You specify the values IIf returns. See some examples. Syntax.
The critical difference between IIF (available from VS 2002 forward) and IF (available in VS 2005 forward) is that IIF is a function and evaluates all of its arguments prior to returning a value, while IF is an operator that executes like a short-circuiting conditional, only evaluating the true or false argument ...
IIF is a shorthand way for writing a CASE expression. It evaluates the Boolean expression passed as the first argument, and then returns either of the other two arguments based on the result of the evaluation.
In computing, IIf (an abbreviation for Immediate if) is a function in several editions of the Visual Basic programming language and ColdFusion Markup Language (CFML), and on spreadsheets that returns the second or third parameter based on the evaluation of the first parameter.
Oracle doesn't provide such IIF Function. Instead, try using one of the following alternatives:
DECODE Function:
SELECT DECODE(EMP_ID, 1, 'True', 'False') from Employee
CASE Function:
SELECT CASE WHEN EMP_ID = 1 THEN 'True' ELSE 'False' END from Employee
Two other alternatives:
a combination of NULLIF
and NVL2
. You can only use this if emp_id
is NOT NULL
, which it is in your case:
select nvl2(nullif(emp_id,1),'False','True') from employee;
simple CASE
expression (Mt. Schneiders used a so-called searched CASE
expression)
select case emp_id when 1 then 'True' else 'False' end from employee;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With