IIFの概要、表、および以下のステートメントの作成中にエラーが発生しました。
ステートメント:
SELECT IIF(EMP_ID=1,'True','False') from Employee;
エラー:00907-右の括弧がありません
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つの選択肢:
NULLIF
と NVL2
の組み合わせ。 emp_id
がNOT NULL
の場合にのみ使用できます。これはあなたの場合です:
select nvl2(nullif(emp_id,1),'False','True') from employee;
simple CASE
expression (Mt. Schneidersはいわゆる検索CASE
expression)を使用しました
select case emp_id when 1 then 'True' else 'False' end from employee;
PL/SQLには、文書化されていないOWA_UTIL.ITE
関数を使用するトリックがあります。
SET SERVEROUTPUT ON
DECLARE
x VARCHAR2(10);
BEGIN
x := owa_util.ite('a' = 'b','T','F');
dbms_output.put_line(x);
END;
/
F
PL/SQL procedure successfully completed.