PLSQL查询if语句

时间:2015-07-29 17:49:07

标签: oracle

我有一个可以存储3个值的 text 列(我们称之为status):

  • open
  • received_complete
  • closed

我想创建一个符合以下规则的新数字列(让我们称之为stata):

  1. 如果status列为open,则stata1
  2. 如果status列为received_complete,则stata2
  3. 如果status列为closed,则stata3
  4. 如何使用Oracle SQL实现此目的?

2 个答案:

答案 0 :(得分:2)

这与asked a month ago的问题基本相同吗?听起来你只需要对你在另一个问题中得到的case陈述稍作修改

SELECT case when status = 'open' then 1
            when status = 'received_complete' then 2
            when status = 'closesd' then 3
            else null
        end stata
  FROM your_table

答案 1 :(得分:0)

您可以使用简单的“case”表达式

来完成此操作
update table set stata = 
case when status = 'open' then 1
   when status = 'received_complete' then 2
   when status = 'closed' then 3
end