根据值选择其他行

时间:2015-04-16 14:20:08

标签: sql oracle

我有声明可以说像

select field1,field2,field3,field4 from table1

并且对于field1为' foo'的每一行而field2是' bar' 我需要在每个行的结果集中添加第二行。

喜欢

field1  ,field2  ,field3,field4
'foo'   ,'bar'   ,...   ,...
'addrow','addrow',...   ,...
'bar'   ,'foo'   ,...   ,...
'bar'   ,'foo'   ,...   ,...
'foo'   ,'bar'   ,...   ,...
'addrow','addrow',...   ,...
'bar'   ,'foo'   ,...   ,...
'bar'   ,'foo'   ,...   ,...

并且必须从table2中选择其他行

有没有办法在SQL中做这样的事情?

1 个答案:

答案 0 :(得分:1)

如果您有号码标识符,可以使用:

select * 
  from (select id *10 as id, field1,field2 from table1
         union all
        select id *10 +1 as id, 'addrow','addrow' from table1
         where field1 = 'foo' and field2 = 'bar') 
  order by id;

检查this Fiddle