使用给定比率分配两个SELECT

时间:2015-08-14 06:25:28

标签: sql oracle

我有两张包含以下数据的表

表“group1”:

id  | sequenceNo
----+-----------
101 | 1
102 | 2
103 | 3
104 | 4
105 | 5

表“group2”:

id  | sequenceNo
----+-----------
201 | 1
202 | 2
203 | 3
204 | 4
205 | 5

我有一个3:1的给定比例,它应该构建一组混合。

结果将是:

id
--
101
102
103
201
104
105

理想情况下,当其中一个组为空时,混合停止。

我已经将问题的解决方案实现为OO程序。然而, 我很好奇是否还有一个简单的SQL解决方案。

非常感谢,

MAIK

1 个答案:

答案 0 :(得分:3)

UNION ALL 2个表,但是在第2个表的select中,你应该将SequenceNo列乘以3.(如果你希望它显示在第一列的第三列之后,可能是3.00001)。

<强>解决方案:

    SELECT * FROM 
     (SELECT id, SequenceNo FROM Group1
       UNION ALL
     SELECT id, SequenceNo*3.00001 FROM Group2)
   ORDER BY SequenceNo ASC