在case表达式中添加到列?

时间:2014-04-15 19:41:27

标签: sql oracle-sqldeveloper

我试图在任何地方找到答案,但似乎无法弄明白。

我尝试在满足某些条件时添加到一行中的列,然后让它显示结果。像,

select itemName
case demand when 'high' then price + 2
            when 'low' then price - 1
            else price
from itemTable

假设数据类似于:

Item1 | high | 2
输出将是:

Item1 | 4

这是在Oracle SQL Developer中,我尝试在then内部使用select语句,但是子查询似乎有点像这样的东西。

1 个答案:

答案 0 :(得分:1)

您只需要一个逗号来分隔两个列定义,并为计算列命名;

select 
    itemName,    
    case demand 
        when 'high' then price + 2
        when 'low' then price - 1
        else price
    end AS demand
from itemTable