加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

CASE .. WHEN表达式在Oracle SQL中

发布时间:2020-12-12 14:24:02 所属栏目:百科 来源:网络整理
导读:我有1列的表,并有以下数据 Statusa1ita2a3 我想在我的选择查询中显示以下结果 Status| STATUSTEXTa1 | Activei | Inactivet | Terminateda2 | Activea3 | Active 我可以想到的一种方法是在选择查询中使用切换时表达式 SELECTstatus,CASE status WHEN 'a1' T
我有1列的表,并有以下数据
Status
a1
i
t
a2
a3

我想在我的选择查询中显示以下结果

Status| STATUSTEXT
a1    | Active
i     | Inactive
t     | Terminated
a2    | Active
a3    | Active

我可以想到的一种方法是在选择查询中使用切换时表达式

SELECT
status,CASE status 
WHEN 'a1' THEN 'Active'
WHEN 'a2' THEN 'Active'
WHEN 'a3' THEN 'Active'
WHEN 'i' THEN 'Inactive'
WHEN 't' THEN 'Terminated'
END AS StatusText
FROM stage.tst

有没有其他方法这样做,我不需要写当表达式3次活动状态和整个活动状态可以在一个单一的表达式检查?

您可以使用IN子句

就像是

SELECT
  status,CASE
    WHEN STATUS IN('a1','a2','a3')
    THEN 'Active'
    WHEN STATUS = 'i'
    THEN 'Inactive'
    WHEN STATUS = 't'
    THEN 'Terminated'
  END AS STATUSTEXT
FROM
  STATUS

看看这个演示

SQL Fiddle DEMO

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读