带有if else结构的Oracle SQL

时间:2016-02-24 09:21:05

标签: sql oracle11g

我有一张如下表格。

表名: myTable

enter image description here

逻辑:如果结婚= 1,我们应该检查薪水值(200),如果结婚= 0,我们应该得到食物价值。

尝试使用解码但没有成功。

如何在一个查询中执行此操作?

1 个答案:

答案 0 :(得分:1)

所以你需要一个案例表达式:

SELECT Road,CASE WHEN maried = 1 then salary else food end as NewValue
FROM(select Road,
            max(CASE WHEN Parameter = 'maried' then value end) as maried,
            max(CASE WHEN Parameter = 'salary' then value end) as salary,
            max(CASE WHEN Parameter = 'food' then value end) as food
     FROM myTable
     GROUP BY Road)

这将为您提供每个独特的ROAD LOGIC。