如何组合两个SELECT语句

时间:2016-11-11 10:07:57

标签: sql

我有两个问题,我试图合并为一个。我正在做的简化版本:

SELECT * FROM table WHERE `id` = '1' ORDER BY `name`
SELECT * FROM table WHERE `id` = '2' ORDER BY `age`

我已经研究过工会,但我在网上找到的例子不太有帮助。

4 个答案:

答案 0 :(得分:1)

你可能正在寻找这样的东西:

function swapFieldsets(elem) {
   if (elem.value.toLowerCase() === 'business') {
     alert(elem.value)
   }
 }

由于id是结果集的一部分,因此不需要SELECT * FROM YourTable WHERE id in('1','2') ORDER BY id,CASE WHEN id=1 THEN age END,CASE WHEN id=2 THEN name END 或其他复杂的技巧。

我很确定UNIONage的类型不同。一个name可能会遇到麻烦。

在我的建议中,CASE WHEN使用了三个。这将转化为

ORDER BY

ORDER BY 1,age,NULL

答案 1 :(得分:0)

以下代码将简单地汇总每个的结果。它没有更多的东西。

SELECT * FROM table WHERE `id` = '1' ORDER BY `name`
union
SELECT * FROM table WHERE `id` = '2' ORDER BY `age`

答案 2 :(得分:0)

在两个查询之间应用Union运算符。请注意在以下两个查询中选择相同的列名称和序列:

SELECT id,columnname1,columnname2 FROM table WHERE id = '1'
union
SELECT id,columnname1,columnname2 FROM table WHERE id = '2'

答案 3 :(得分:0)

select * from(select table from table1,其中id = 1 order by id)UNION select * From(从table2中选择id,其中id = 2 order by name);这对oracle工作正常。