首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ORACLE IIF语句

ORACLE IIF语句
EN

Stack Overflow用户
提问于 2013-02-09 21:15:58
回答 3查看 125.9K关注 0票数 48

我在编写IIF语句、表和下面的语句时出错。

声明:

代码语言:javascript
复制
SELECT IIF(EMP_ID=1,'True','False') from Employee;

表:

代码语言:javascript
复制
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)
)

错误:

00907-失踪的右副总统

请提供您的投入。

EN

回答 3

Stack Overflow用户

发布于 2013-02-09 21:31:44

Oracle不提供这样的IIF功能。相反,尝试使用以下选项之一:

解码函数

代码语言:javascript
复制
SELECT DECODE(EMP_ID, 1, 'True', 'False') from Employee

案例函数

代码语言:javascript
复制
SELECT CASE WHEN EMP_ID = 1 THEN 'True' ELSE 'False' END from Employee
票数 78
EN

Stack Overflow用户

发布于 2013-02-10 08:40:07

另外两种备选方案:

  1. NULLIFNVL2的结合。只有当emp_idNOT NULL时才能使用它,在您的情况下是这样的: 从员工中选择nvl2(nullif(emp_id,1),False,True);
  2. 简单表达式 (Mt. )Schne蜘蛛使用了一个所谓的搜索CASE表达式) 选择大小写emp_id时,当1,然后‘真’其他‘假’结束从员工;
票数 23
EN

Stack Overflow用户

发布于 2018-08-01 16:55:11

在PL/SQL中,有一个技巧可以使用无文档的OWA_UTIL.ITE函数。

代码语言:javascript
复制
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.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14791684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档