Sql 根据值选择其他行

Sql 根据值选择其他行,sql,oracle,Sql,Oracle,我有句话让我们说喜欢 select field1,field2,field3,field4 from table1 对于字段1为“foo”且字段2为“bar”的每一行 我需要在结果集中为每一行添加第二行 像 另外的行必须从表2中选择 在SQL中有这样的方法吗?如果您有一个数字标识符,您可以使用: select * from (select id *10 as id, field1,field2 from table1 union all select i

我有句话让我们说喜欢

select field1,field2,field3,field4 from table1
对于字段1为“foo”且字段2为“bar”的每一行 我需要在结果集中为每一行添加第二行

另外的行必须从表2中选择


在SQL中有这样的方法吗?

如果您有一个数字标识符,您可以使用:

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;

检查。

请解释更多。您想打印什么?我只需要第二个方框中显示的结果集中的其他行数多少?对于第1行,您还想打印第2行('addrow','addrow',…,…,…),我认为一个简单的联合都可以使用where子句,如
,其中field1是'foo',field2是'bar'
。呵呵,好吧,我认为这是不言自明的。我需要每行正好有一行,其中field1是'foo',field2是'bar',我需要它正好在那行之后,而不是在末尾或其他地方。我不知道这对工会来说该怎么办
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;