根据另一个表中的条件设置一个表中的字段

时间:2013-01-17 17:18:12

标签: oracle oracle10g sqlplus

我将以尽可能明确的方式提出这个问题。这很令人困惑,所以如果不清楚我会事先道歉:

我有一组表:Table1,Table2,Table3

这些表格中的每一个都有一个“年龄”列

我想创建一个表来检查age列是否包含每个表的“Age”列中的任何记录大于60,如果是,则将新列中的记录设置为“RED” “。我还想指定一些其他标准来将列设置为“黄色”和“绿色”;然而,一步一步。

这样的事情:

表|年龄

表1 |红色

表2 |黄

表3 |绿色

感谢任何有用的帮助

1 个答案:

答案 0 :(得分:1)

类似

select case when max(t1.age) > 60 then 'RED' else 'GREEN' end table1_age, 
            case when max(t2.age) > 60 then 'RED' else 'GREEN' end table2_age, 
            case when max(t3.age) > 60 then 'RED' else 'GREEN' end table3_age
      from (select max(age) age from table1) t1
           cross join (select max(age) age from table2) t2
           cross join (select max(age) age from table2) t3;

select 'table 1' tabl,
        case when max(age) > 60 then 'RED' else 'GREEN' end 
  from  table1 t1
union all
select 'table 2' tabl,
        case when max(age) > 60 then 'RED' else 'GREEN' end 
  from  table2
union all
select 'table 3' tabl,
        case when max(age) > 60 then 'RED' else 'GREEN' end 
  from  table3;